关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
8年前关闭。
Improve this question
我环顾四周,但我对 java 还是很陌生,我发现与字符串输入和 char/number 相关的所有内容都对我丢失了。我已经看到了各种不同的方法来检查它是数字还是字符,但我不确定在我的情况下使用哪一种。我的程序的目标是让用户输入一个数字,然后检查并打印该数字是偶数还是奇数。但不要限制用户只输入一个整数。我想将输入设为“字符”,但我无法让扫描仪接受它,它想将其转换为字符串。所以现在我正在使用字符串输入,但我不确定如何在 main 下面编写一个函数,我可以调用该函数来检查用户的输入是数字还是字符。我不想为我编写整个程序,只想如何解决这个问题。如果我无法获得更多帮助,我会回来寻求更多帮助:)
此外,如果您能够在回复时解释代码的每个部分在做什么,以帮助我了解哪些命令到底做了什么,这将有很大帮助。提前感谢您的任何回复!
好的,我会发布我的代码,我知道它已经坏了,但我真的不知道下一步该去哪里。我希望用户输入他想要的任何内容,一个 char ,像 & $ # 这样的符号,或者一个数字。但是如果他输入除数字以外的任何内容,我希望程序给他一个错误。所以我想我必须让他们输入一个字符串,但我不知道如何在扫描仪输入字符串时使用我的测试功能。呃,我太迷路了。我需要它来检查字符串以查看它是字符还是数字,如果是字符,则向它们抛出错误。如果它是一个数字,请检查它是偶数还是奇数,然后回答它是哪一个。
公共(public)类firsttry2 {
public static void main(String[] args) {
System.out.print("Enter a character or number. Seriously, though, it is meant to be a number, but you can put whatever you want here. If it isn't a number however, you will get an error message.");
Scanner in=new Scanner(System.in);
String input=in.next();
boolean x=checkevenodd(input);
//no idea where to go from here and what i have so far is probably badly broken
//i cant get checkevenodd to work with my scanner input because it's expecting an integer but it's getting a string.
}
public static boolean checkevenodd(int input1){
if (input1%2==0) return true;
return false;
}
公共(public)静态 boolean 检查字符类型(){
}
}
最佳答案
只需将用户输入传递给 Integer.parseInt(String)
, 如果它抛出 NumberFormatException
, 它不是 Integer
.进一步检查字符串的长度,如果是1,它必须是一个字符。但在您的情况下,无需检查字符,只需限制整数。如果出现异常,提示输入错误。
int i = 0;
try
{
i = Integer.parseInt(readit.next());
}
catch(NumberFormatException e)
{
e.printStackTrace();
return;
}
System.out.println(i);
关于java - 检查(使用函数)来自用户的字符串输入是字符还是整数。 ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19309375/