Неизвестная ошибка преобразования формата во время выполнения - PullRequest
0 голосов
/ 01 октября 2018

Я написал программу, в которой пользователь вводит 3 4-значных шестнадцатеричных числа, а затем сортирует их по размеру, используя методы String.Я получаю ошибку, с которой я не знаком.Система компилируется, но работает с ошибкой.Я опубликую свой исходный код и ошибку

import java.util.Scanner;

public class HexNumbers {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("Enter three 4-digit hexadecimal numbers: ");
    String numbers = input.nextLine();
    String[] result = numbers.split("\\s+");
    String a = result[0];
    String b = result[1];
    String c = result[2];
    String A = a.toUpperCase();
    String B = b.toUpperCase();
    String C = c.toUpperCase();
    int comp1 = C.compareTo(A);
    int comp2 = C.compareTo(B);
    int comp3 = B.compareTo(A);
    boolean first = comp2 > comp1 && comp1 > 0 && comp2 > 0;
    boolean second = comp1 <0 && comp2 < 0 && comp2 > comp1;
    boolean third = comp1 > 0 && comp2 > 0 && comp1 == comp2;
    boolean fourth = comp1 < 0 && comp2 < 0 && comp1 == comp2;

    if(first = true){
      System.out.printf("Maximum: %/s /n Median: %/s /n Minimum: %/s /n", C, A, B);
    }
    else if (second = true) {
      System.out.printf("Maximum: %/s /n Median: %/s /n Minimum: %/s /n", A, B, C);
    }
    else if (third = true) {
      if (comp3 > 0){
        System.out.printf("Maximum: %/s /n Median: %/s /n Minimum: %/s /n", C, B, A);
      }
      else{
        System.out.printf("Maximum: %/s /n Median: %/s /n Minimum: %/s /n", C, A, B);
      }
    }
    else if (fourth = true) {
      if (comp3 > 0){
        System.out.printf("Maximum: %/s /n Median: %/s /n Minimum: %/s /n", B, A , C);
      }
      else{
        System.out.printf("Maximum: %/s /n Median: %/s /n Minimum: %/s /n", A, B, C);
      }
    }
  }
}

Вот ошибка, которую я получаю после ввода пользователем строки:

java.util.UnknownFormatConversionException: Conversion = '/'
at java.util.Formatter.checkText(Unknown Source)
at java.util.Formatter.parse(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.io.PrintStream.format(Unknown Source)
at java.io.PrintStream.printf(Unknown Source)
at HexNumbers.main(HexNumbers.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:267)

1 Ответ

0 голосов
/ 01 октября 2018

Если вы хотите напечатать новую строку, используя printf, вам следует использовать %n вместо \n документы

A new line character appropriate to the platform running the application. You should always use %n, rather than \n. документы

...