我想檢查用戶輸入的號碼,如果沒有的話,就使用默認的數字,如10.如何檢查是否只是按下回車和Java中檢查用戶是否輸入了任何內容?
input = scanner.nextInt();
pseudo code:
if(input == user just presses enter without entering anything){
input = 10;
}
else just proceed with input = what user entered
我想檢查用戶輸入的號碼,如果沒有的話,就使用默認的數字,如10.如何檢查是否只是按下回車和Java中檢查用戶是否輸入了任何內容?
input = scanner.nextInt();
pseudo code:
if(input == user just presses enter without entering anything){
input = 10;
}
else just proceed with input = what user entered
//scanner is a Scanner
int i; // declare it before the block
try {
i = scanner.nextInt();
}
catch (InputMismatchException ime) {
i = 10;
}
// i is some integer from the user, or 10
那麼,如果你正在使用掃描儀,給提供的細節,你可以嘗試:
Scanner in = new Scanner(System.in);
if in.hasNextInt(){ //Without this, the next line would throw an input mismatch exception if given a non-integer
int i = in.nextInt(); //Takes in the next integer
}
你說你想要的10默認,否則這樣:
else {
int i = 10;
}
0第一兩
第一件事,geeeeeez傢伙,當OP說像
「我不想要一個例外,我想I = 10,如果輸入任何內容,所以我該怎麼辦」
那應該提示你,因爲他可能不太瞭解異常(甚至可能是java),可能需要一個簡單的答案。如果這是不可能的,向他解釋困難的問題。
好吧,這裏是做
String check;
int input = 10;
check = scanner.nextLine/*Int*/();
if(check.equals(""))
{
//do nothing since input already equals 10
}
else
{
input = Integer.parseInt(check);
}
讓我解釋一下這段代碼是做簡單明瞭的方式。您最初使用nextInt()來獲取輸入的數字,對嗎?問題是,nextInt()僅在用戶實際輸入內容時纔會響應,而不是按下回車鍵。爲了檢查輸入,我們使用了一種方法,當用戶按下輸入並使用該方法時,該方法會實際響應,以確保我們的代碼符合我們的要求。我推薦使用的一個API是Java,Java有一個。
這裏的鏈接,API HERE
而這裏的鏈接,我用HERE的實際方法。你可以在這個API上找到許多方法的描述和指導。
現在,回到我的答案,這是簡單的方法來做到這一點。問題是,這段代碼不一定安全。如果出現問題,或者有人試圖侵入你的系統,它會拋出異常。例如,如果您要輸入一個字母而不是按Enter或輸入數字,則會引發異常。你在其他答案中看到的是我們所說的異常處理,這就是我們如何確保異常不會發生。如果你想要一個能夠捕獲這些異常的答案,你需要確保你的代碼能夠捕捉到它們,或者避免它們一起出現(我正在極大地簡化事情)。上面的答案是工作代碼,但不是安全的代碼,你不會在現實生活中獨自使用這樣的事情。
以下是可能被視爲安全代碼的內容。並沒有例外讓它簡單! ;)
import java.util.Scanner;
public class SOQ15
{
public Scanner scanner;
public SOQ15()
{
scanner = new Scanner(System.in);
int input = 10;
boolean isAnInt = true;
String check;
check = scanner.nextLine/*Int*/();
if(check.equals(""))
{
//do nothing since input already equals 10
}
for(int i = 0; i < check.length(); i++)
{
if(check.charAt(i) >= '0' && check.charAt(i) <= '9' && check.length() < 9)
{
//This is if a number was entered and the user didn't just press enter
}
else
{
isAnInt = false;
}
}
if(isAnInt)
{
input = Integer.parseInt(check);
System.out.println("Here's the number - " + input);
}
}
public static void main(String[] args)
{
SOQ15 soq = new SOQ15();
}
}
我現在沒有時間詳細瞭解所有的細節,但問,我會很樂意迴應我的時間! :)
好吧,正在使用掃描儀接受輸入或什麼?向我們顯示用戶輸入其數據的代碼 – DreadHeadedDeveloper 2014-10-12 01:07:57
是掃描儀,如number = input。掃描器(); – 2014-10-12 01:08:27
好吧,發佈你的代碼,這樣做,我可以肯定地幫你這個 – DreadHeadedDeveloper 2014-10-12 01:10:03