0

我环顾四周,但我对 java 还是很陌生,我发现的所有与字符串输入和字符/数字有关的东西都对我丢失了。我已经看到了各种不同的方法来检查它是数字还是字符,但我不确定在我的情况下使用哪一种。我的程序的目标是让用户输入一个数字,然后检查并打印该数字是偶数还是奇数。但不要限制用户只输入一个整数。我想将输入设为“字符”,但我无法让扫描仪接受它,它想将其转换为字符串。所以现在我正在使用字符串输入,但我不确定如何在 main 下面编写一个函数,我可以调用该函数来检查用户的输入是数字还是字符。我不想为我编写整个程序,只想如何解决这个问题。我'
此外,如果您能够在回复时解释代码的每个部分在做什么,以帮助我了解哪些命令到底做了什么,这将有很大帮助。提前感谢您的任何回复!

好的,我会发布我的代码,我知道它已经坏了,但我真的不知道下一步该去哪里。我希望用户输入他想要的任何内容,一个 char ,像 & $ # 这样的符号,或者一个数字。但是如果他输入除数字之外的任何内容,我希望程序给他一个错误。所以我想我必须让他们输入一个字符串,但我不知道如何在扫描仪输入字符串时使用我的测试函数。呃,我太迷路了。我需要它来检查字符串以查看它是字符还是数字,如果是字符,则向它们抛出错误。如果它是一个数字,请检查它是偶数还是奇数,然后回答它是哪一个。

公共类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;
}

公共静态布尔检查字符类型(){

} }

4

3 回答 3

4

只需将用户输入传递给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);
于 2013-10-11T02:39:07.867 回答
1

如果您使用Integer.parseInt()(或Long.parseLong()),您仍将被限制为 32 位(或 64 位)有符号整数范围内的数字。但是您不需要解析java 原始整数类型来检查用户是否输入了“整数”,其数学定义是任何整数(任何大小),所以:

将您的用户输入读取为字符串并使用正则表达式为您完成工作:

要检查输入是否为“整数”(在数学意义上):

if (input.matches("-?\\d+")) {
    // it's an integer, either negative or positive
}

要检查它,数字是“偶数”:

if (input.matches(".*[02468]")) {
    // it is even
}

请注意,String.matches()必须匹配整个字符串才能返回true,因此不需要开始或结束锚点^,并且$- 它们是隐含的。

于 2013-10-11T03:33:54.450 回答
0

首先你需要告诉你的程序输入应该是什么样的。为此,您可以定义一组您的输入必须有或不能有的元素。然后您可以将用户输入与该集合进行比较,并可以确定输入是否合法。

标准方法之一是使用正则表达式。你可以用谷歌搜索java中的正则表达式。或者可以阅读 http://www.vogella.com/articles/JavaRegularExpressions/article.html上的教程

于 2013-10-11T03:24:51.537 回答