我是Java的新手。我正在尝试扫描用户的输入,然后打印输入。但是,当我尝试运行代码时出现以下错误。
Erorr:
Thread [main] (Suspended (exception IllegalFormatConversionException))
代码:
package dumb;
import java.util.Scanner;
public class Try001 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Input value for variable i:");
int i = sc.nextInt();
System.out.printf("Value for i scanned: %d",sc.next());
}
}
输入: 5
为什么我会收到此错误以及如何解决?
答案 0 :(得分:5)
你的问题是你得到sc.next()
的字符串和%d
你说的程序它需要一个整数。
所以你必须改变它,例如到
System.out.printf("Value for i scanned: %d",sc.nextInt());
但我认为你只想打印第一个用户输入而不是第二个用户输入。所以你只需打印变量i的值:
System.out.printf("Value for i scanned: %d",i);
答案 1 :(得分:0)
将sc.next更改为sc.nextInt。原因是,%d表示您要显示“十进制”又名数字值。 Sc.next为您提供了一个字符串。 %d无法接受字符串数据类型。 另外,摆脱int i = sc.nextInt()因为它是多余的。