2014-10-29 185 views
0

我在這裏有一個簡單的do while循環。我現在唯一的問題是這個循環現在只接受數字。我需要它接受除空白輸入之外的所有內容。如何在不輸入任何內容時提示用戶

import java.util.Scanner; 

public class Assignment6 { 
    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     boolean notValid = true; 
     int numberAsInt = 0; 
     do { 
      try { 
       System.out.print("Enter a number to Convert > "); 
       String number = scan.nextLine(); 
       numberAsInt = Integer.parseInt(number); 
       notValid = false; 
      } 
      catch (Exception e) { 
      } 

     } while (notValid); 
    } 
} 

回答

0

我有點疑惑因爲你解析了你的代碼中的結果,但我希望這是你所要求的:

public class Assignment6 { 
public static void main(String[]args){ 
    Scanner scan = new Scanner(System.in); 
    boolean notValid = true; 
    String input; 
    do{ 
      System.out.print("Enter a number to Convert > " ); 
      input = scan.nextLine(); 
      if(!input.isEmpty()) 
      notValid = false; 

    } while (notValid); 

    } 
} 
+0

非常感謝這是最有幫助的 – 2014-10-29 08:15:59

+0

我很高興它有幫助。那麼請接受它作爲迴應。 – Iootu 2014-10-29 08:21:47

+0

嘿,還有一件事。我正在使用基地,我需要提供一個錯誤消息。我可以在這裏發佈我的代碼嗎? – 2014-10-29 08:37:18

1

你可以這樣做:

String number = readLine("Enter a number to Convert > "); 
while(number.isEmpty()){ 
    number = readLine("Please enter a *non-blank* number > "); 
} 
+0

哦,哇,沒有看到你的迴應。謝謝! – 2014-10-29 08:21:56

0

在這裏,我們比較,如果輸入的數值空間比不是有效的將是真正的

try { 
        System.out.print("Enter a number to Convert > " ); 
        String number = scan.nextLine(); 
        if(number.equals(" ")) 
        { 
        notValid = ture; 
        sysytem.out.println(" Please do not enter blank space"); 
        } 
        else 
        { 
        numberAsInt = Integer.parseInt(number); 
        notValid = false; 
        } 
      } 
0

使用此片段在你的代碼:

if(number.trim().equals("")) 
         { 
         notValid = ture; 
         sysytem.out.println(" Please do not enter blank space"); 
         } 
相關問題