尝试打印输入时出现IllegalFormatConversionException

时间:2017-04-11 09:22:06

标签: java

我是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

为什么我会收到此错误以及如何解决?

2 个答案:

答案 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()因为它是多余的。