测试字符串是否包含整数java

测试字符串是否包含整数java,java,string,int,Java,String,Int,我试图测试字符串中是否包含整数。我知道我可以做到: Integer.parseInt(String); 但我正试图复制这一点 我怎样才能测试字符串,看看它是由六个字符组成的字符串,还是一个实际的整数 编辑: 使用try-and-catch方法完成: 固定代码: private static void decadeMenu(){ System.out.println("Enter number corresponding to your decade:"); System.out

我试图测试字符串中是否包含整数。我知道我可以做到:

Integer.parseInt(String);
但我正试图复制这一点

我怎样才能测试字符串,看看它是由六个字符组成的字符串,还是一个实际的整数

编辑: 使用try-and-catch方法完成:

固定代码:

private static void decadeMenu(){
    System.out.println("Enter number corresponding to your decade:");
    System.out.println("   1 - 1900-1909");
    System.out.println("   2 - 1910-1919");
    System.out.println("   3 - 1920-1929");
    System.out.println("   4 - 1930-1939");
    System.out.println("   5 - 1940-1949");
    System.out.println("   6 - 1950-1959");
    System.out.println("   7 - 1960-1969");
    System.out.println("   8 - 1970-1979");
    System.out.println("   9 - 1980-1989");
    System.out.println("   10 - 1990-1999");
    System.out.println("   11 - 2000-2005");
}

private static int decadeSelection(){
    String decadeChoice;
    int decade;

    do {
        System.out.println("Enter a decade: ");
        decadeChoice = keyboard.nextLine();

        decade = checkDecade(decadeChoice);

    } while (!validDecade);

    return decade;
}

private static int checkDecade(String decadeChoice){
    int decade = 0;

    try {
        decade = Integer.parseInt(decadeChoice);
    }
    catch (Exception e){
        System.out.println("That is not an integer. Please try again.");

        return decade;
    }

    if (decade < 1 || decade > 11){
        System.out.println("Enter an integer between 1 and 11");

        validDecade = false;
        return decade;
    }
    else {
        validDecade = true;

        return decade;
    }
}
private static void decadeMenu(){
System.out.println(“输入十年对应的数字:”);
系统输出打印号(“1-1900-1909”);
系统输出打印(“2-1910-1919”);
系统输出打印(“3-1920-1929”);
系统输出打印(“4-1930-1939”);
系统输出打印(“5-1940-1949”);
系统输出打印(“6-1950-1959”);
系统输出打印号(“7-1960-1969”);
系统输出打印(“8-1970-1979”);
系统输出打印(“9-1980-1989”);
系统输出打印号(“10-1990-1999”);
系统输出打印号(“11-2000-2005”);
}
私有静态整型取消选择(){
弦垂选;
国际十年;
做{
System.out.println(“输入十年:”);
decadeChoice=keyboard.nextLine();
十年=检查十年(十年选择);
}而(!validcade);
回归十年;
}
专用静态整数校验十年(字符串十年选择){
整数十年=0;
试一试{
十位数=整数.parseInt(十位数选择);
}
捕获(例外e){
System.out.println(“这不是一个整数,请再试一次。”);
回归十年;
}
如果(十年<1 | |十年>11){
System.out.println(“输入一个介于1和11之间的整数”);
validcade=false;
回归十年;
}
否则{
validcade=true;
回归十年;
}
}

Validcade是一个布尔实例

整数。如果不是整数,则parseInt
将引发异常。您可以使用
尝试
捕获该异常<代码>捕捉
块;如果捕捉到异常,则表示它不是整数。您可以将十进制设置为无效值,例如在这种情况下设置为0,以简化操作。

您可以尝试使用Character.isDigit()方法检查字母是否都是数字

是的,正如上面用户所说,您可以使用try-catch块来捕获异常。
也许,断言也有帮助。

您可以使用Integer.parseInt()路由并捕获一个异常,如果它不是一个数字,但这有点混乱。另一种方法是首先使用正则表达式查看字符串是否匹配,例如。\d+(或者如果要包含负数和小数,则使用更复杂的正则表达式)

如果要创建命令行菜单,是否考虑使用Scanner类


它有一个nextInt(),它将为您返回int,并为您计算int。

我没有考虑尝试捕获,我可能会将它扔到那里,看看是否可以正确运行。我也没有考虑字符。isDigit()我将处理我的代码并以某种方式解决它