测试字符串是否包含整数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()我将处理我的代码并以某种方式解决它