2015-07-12 61 views
-1

我試着寫一個小程序,但它一直得到一個arror消息:如何解決主線程中的異常?發生了什麼問題?

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) 

我真不明白是怎麼回事。我使用Eclipse。

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()); 


     } 

    } 
+0

請花時間格式化您的源代碼並將其降低到重現此問題所需的最小量。 –

+0

如果將*「hallo」*轉換爲整數,您能解釋一下您認爲自己會得到什麼嗎? – Tom

+0

thx但問題已得到解決 –

回答

2

您的代碼正常工作。你只是給了程序錯誤的輸入。

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()); 
     } 
+0

好吧thx我相信我做了你所問。 thx非常多! –

相關問題