2017-02-22 81 views
0

在Java中,如果可能,我可以如何將數字掃描器輸入(如2或87)轉換爲整型變量?我現在使用產生了錯誤消息:如何將掃描儀輸入轉換爲整數?

Exception in thread "main" java.lang.NumberFormatException: null 
    at java.lang.Integer.parseInt(Unknown Source) 
    at java.lang.Integer.valueOf(Unknown Source) 
    at diDecryption.Didecryption.main(Didecryption.java:226) 

這是我用做它的代碼(拼湊起來的,這是一個更大的計劃的一部分):

System.out.println("Enter first number"); 
    Scanner sc=new Scanner(System.in); 
    String name=sc.next(); 
    int result = Integer.valueOf(name); 
    if (result/2 == 1){ 
    System.out.println("a"); 

該程序的目的是解碼加密的消息。輸入是數字,如果我將字符串移除到int轉換器,分區不起作用。我該如何解決?

+0

你如果我給它一個數字,代碼對我來說工作正常。你到底在做什麼? (你發佈的錯誤信息表明你正試圖解析'null') – azurefrog

+0

你的輸入是什麼?代碼對我來說看起來很好。 http://ideone.com/omNdEF –

+2

我懷疑你的異常消息是否與你的代碼匹配。掃描儀方法不會返回null。如果沒有什麼可讀的話,他們會拋出異常。請提供[mcve]。 – Tom

回答

0
System.out.println("Enter first number"); 
Scanner sc=new Scanner(System.in); 
String name=sc.next(); 
int result = Integer.parseInt(name); 
if (result/2 == 1){ 
System.out.println("a"); 

parseInt函數變成一個原始的INT而不是一個Integer對象

+3

這不會有什麼區別,Java很樂意取消'valueOf()'返回的'Integer'。 – azurefrog

+0

@azurefrog true,但他們的代碼似乎爲我工作 –

0

如果你輸入的數值,它是更好地使用直接的方法

sc.nextInt(); 
+0

這顯然不是轉換。但我確實明白你的想法 –

0

在您的堆棧跟蹤你有null作爲參數Integer.valueOf(name)。 似乎你的控制檯產生一些無效的輸入序列。 嘗試用sc.hasNext()條件檢查:

System.out.println("Enter first number"); 
    Scanner sc = new Scanner(System.in); 
    if (sc.hasNext()) { 
     String name = sc.next(); 
     int result = Integer.parseInt(name); 
     if (result/2 == 1) { 
      System.out.println("a"); 
     } 
    } 
0

嘗試

System.out.println("Enter first number"); 
Scanner sc=new Scanner(System.in); 
int name=sc.nextInt(); 
if ((name/2) == 1) 
System.out.println("a"); 

RUN

run: 
Enter first number 
2 
a 
0

試試這個代碼

package exmaple; 

import java.util.Scanner; 

public class Parser { 

    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 

     String name = in.next(); 

     try{ 
      int result = Integer.parseInt(name); 
      if(result/2 == 1) { 
       System.out.println("a"); 
      } 

     } catch(Exception exception) { 

     } 
     in.close(); 
    } 

}