2013-09-23 47 views
0
int s; 

number2=input.next(); 

for (int i=0;i<number2.length();i++){ 

    s=(int)(number2.charAt(i)); 

    while ((s<48)||(s>57)){ 
    System.out.println("Enter the amount"); 
    number2=input.next(); 
    s=number2.charAt(i);  
    } 

} 

使用此代碼我只能生成一個整數。如果我想用小數生成一個double,我該怎麼做?關於檢查字符串是否爲數字

回答

1

您可能會嘗試使用Integer.parseIntDouble.parseDouble來解析整數或雙精度值。

+0

但我只能得到整數。假設我輸入123.56,那麼我必須再次輸入。 –

+0

@uddhabtiwari你可以將它存儲在變量 –

+0

+1爲基本概念... – MadProgrammer

0

假設你正在閱讀從用戶輸入您可以使用nextInt()

Scanner scan = new Scanner(System.in); 
int n = 0; 
try{ 
    n = scan.nextInt(); 
} 
catch(NumberFormatException e){ 
    //do here what you want to do in case it's not an int 
} 

不要忘記使用try /萬一捕捉輸入是不是int(同樣適用於Juned的答案! )。

+0

但我不想讓程序退出,如果我輸入字符串。在這種情況下,如果我輸入一個字符串,程序將退出並顯示錯誤消息。 –

+0

@uddhabtiwari然後捕獲該異常並妥善處理。要做到這一點將需要一個新的輸入。 – Obicere

+0

@Obicere我只是一個基本的Java程序員,剛開始學習它。我不知道如何捕捉並嘗試語法。你能幫我解決嗎? –

1

你可以欺騙...

String text = "123"; 
boolean isDouble = false; 
boolean isInt = false; 
try { 
    Double.parseDouble(text); 
    try { 
     Integer.parseInt(text); 
     isInt = true; 
    } catch (NumberFormatException exp) { 
     isDouble = true; 
    } 

    System.out.println("isInt = " + isInt); 
    System.out.println("isDouble = " + isDouble); 
} catch (NumberFormatException exp) { 
    System.out.println(text + " is not a valid number"); 
} 

A123輸出A123 is not a valid number ...

123輸出...

isInt = true 
isDouble = false 

123.321輸出...

isInt = false 
isDouble = true 
+0

+1來演示基本概念的正確用法:-) –