2013-02-10 128 views
0

我已經使這個類有趣,現在我想添加一些約束和if語句。但不知道如何。Java - 添加約束

問題1)我不知道如何對System.out.print輸出執行if語句。比方說,如果用戶輸入超過50個字符,他們將被停止。

我知道如何做到這一點在MySQL中,但不是在Java中,因爲我很沒經驗的ATM。 :|

問題2)我還想限制自己輸入數字,如果它是nextLine,或者文本是nextInt。

任何人都可以幫助我解決這兩個問題嗎?

import java.util.Scanner; 

class AppForm { 
    public static void main(String args[]){ 

     Scanner sc = new Scanner(System.in); 

     System.out.print("Enter your name... "); 
     System.out.println("Your name is " + sc.nextLine()); 

     System.out.print("Enter your age... "); 
     System.out.println("Your age is " + sc.nextInt()); 

    } 
} 

謝謝。

+1

考慮閱讀一本java書,請不要發佈你不知道的每一個細節的問題。首先學習java,然後我們很樂意回答你的問題 – 2013-02-10 22:18:39

+0

@sleimanjneidi有沒有你可以推薦的書?我嘗試了一些,但迄今沒有一個真正幫助我。一本書包含步驟將是有益的,因爲我是通過查看答案而學習的人。我讀過的書讓我解決他們的問題,不提供答案,真的很難讓我真正掌握他們的目的。我不是故意在這裏發帖,但是在這裏,社區真的幫助我瞭解Java,而不是我的書。希望你能理解。 – Dembele 2013-02-11 00:15:32

+0

在java中思考是我最喜歡的書 – 2013-02-11 02:31:32

回答

2

你應該通過存儲在一個變量的nextLine()結果分崩離析的輸入和輸出的代碼開始:

System.out.print("Enter your name... "); 
String line = sc.nextLine(); 
System.out.println("Your name is " + line); 

然後,您可以執行任何檢查,你需要在line字符串變量。在交互式節目的情況下,典型的範例是打印出錯誤消息,並且要求用戶重複輸入無效的情況下,輸入:

System.out.print("Enter your name... "); 

String line = sc.nextLine(); 

while (line.length() > 50) { 
    System.out.println("Error: you entered more than 50 characters"); 

    // Ask the user for their name again... 
    System.out.print("Enter your name... "); 
    line = sc.nextLine(); 
} 

System.out.println("Your name is " + line); 

不幸的是沒有辦法阻止用戶輸入無效字符 - 您只能在之後檢查行的內容,用戶已完成打字並且程序收到打印的行。

0

我會建議看看while循環。 一些可能性:

String name; 
do { 
    System.out.print("Enter your name... "); 
    String line = sc.nextLine(); 
while (StringUtils.isEmpty(name) || name.length() > 50) 

或者: 字符串名稱;

while (StringUtils.isEmpty(name)) { 
    System.out.print("Enter your name... "); 
    name = sc.nextLine(); 
    if (name.length >= 50) { 
     System.out.println("Max name length is 50"); 
    } 
} 

但有很多流量控制選項。