检查用户是否输入了任何内容?
我想检查用户输入的号码,如果没有的话,就使用默认的数字,如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