我试着写一个小程序,但它一直得到一个错误消息:
Exception in thread "main" java.lang.NumberFormatException: For input string: "hallo"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at TheNoteBook.main(TheNoteBook.java:7)
我真的不明白发生了什么事。
import java.util.Scanner;
public class TheNoteBook {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int t = Integer.parseInt( in.nextLine() );
for(int c=0; c<t; c++){
String word = in.nextLine();
Note note = new Note(word);
System.out.println("Note " +c+ " says: " + note.getContent() );
}
}
您的代码运行良好。你只是给了程序错误的输入。
NumberFormatException
表示,您正在尝试将某物转换为非数字。在您的示例中,您尝试将hallo
转换为数字。
所以你试图解析一个整数,但你的输入是一个字符串hallo
。你的类应该如何将hallo
转换为数字?因此,您可能尝试先输入字符串,而的第一个输入必须是一个数字。
顺便说一下,您应该使用nextInt()
方法来获得数字输入,而不是nextLine()
。
Scanner in = new Scanner(System.in);
int t = in.nextInt();
in.nextLine();
for (int c = 0; c < t; c++)
{
String word = in.nextLine();
Note note = new Note(word);
System.out.println("Note " + c + " says: " + note.getContent());
}