Java 如何检查整数字符串
我应该写一个程序,接收一个表示整数的字符串作为输入,如果每个字符都是数字0-9,则输出yes 我已经阅读了我的章节,浏览了谷歌,但我仍然有困难。我知道我的代码乱七八糟,但我迷路了。我可能有一些零碎的东西是正确的,也可能是错误的,但这就是我所拥有的Java 如何检查整数字符串,java,Java,我应该写一个程序,接收一个表示整数的字符串作为输入,如果每个字符都是数字0-9,则输出yes 我已经阅读了我的章节,浏览了谷歌,但我仍然有困难。我知道我的代码乱七八糟,但我迷路了。我可能有一些零碎的东西是正确的,也可能是错误的,但这就是我所拥有的 import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner scnr = new Sca
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String userString;
// Add more variables as needed
userString = scnr.next();
boolean check1 = Character.isDigit(userString);
while (check1 = True) {
System.out.println ("Yes");
}
System.out.println ("No");
我哪里出错了?正如人们在评论中指出的,您的代码中有一些错误
Character.isDigit
不能与字符串一起使用。您需要使用的是Integer.parseInt(…)
。你可以把它放在一个试抓块里;如果解析成功,则打印是;如果引发异常,则打印否:
userString=scnr.next();
试一试{
int parsedValue=Integer.parseInt(userString);
//用parsedValue做一些事情
System.out.println(“是”);
}捕获(NumberFormatException NumberFormatException){
系统输出打印项次(“否”);
}
您可以使用正则表达式:
import java.util.regex.Matcher;
导入java.util.regex.Pattern;
//您的输入,也可以来自扫描仪
字符串输入=“1234567890”;
//正则表达式模式,以匹配仅由数字组成且不为空的字符串
字符串regex=“^[0-9]+$”;
//还要匹配负数:“^[\\-]?[0-9]+$”
//创建模式对象
Pattern=Pattern.compile(regex);
//创建匹配器对象
Matcher Matcher=pattern.Matcher(输入);
//检查输入是否匹配
if(matcher.find()){
System.out.println(“这是一个数字,耶!”);
};
正则表达式是如何工作的:
匹配输入的开头,以确保数字字符之前没有任何内容^
告诉它匹配范围[0-9]+
一次或多次(0-9
),这也确保空字符串不匹配+
匹配字符串的结尾,以确保匹配后没有非数字$
[\\-]?
如果打开,则匹配一个减号;如果没有符号(?
),则匹配一个减号
也可能是您尝试的方式:
//打开扫描仪
扫描仪=新的扫描仪(System.in);
//从扫描仪读取用户输入
字符串输入=scanner.next();
//假设它是一个数字,直到我们在下面找到一个非数字字符
字符串isNumber=true;
//在用户输入的每个字符上循环
for(字符:输入){
//检查字符是否不是数字
如果(!Character.isDigit(Character)){
System.out.println(“非数字:”,字符);
//将is number变量设置为false
isNumber=false;
//中断循环,因为它不能是数字,因为我们已经找到了一个非数字
打破
};
};
System.out.println(“它是一个数字吗?”,isNumber);
嗯,这段代码编译吗。您将if语句与while循环混为一谈。2.你把比较(=)和分配(=)3弄混了。您在true
中有一个输入错误。Java是区分大小写的,这个关键字都是小写的。4.您缺少用于关闭方法的括号。您是否了解了类java.lang.Integer
中的方法?是只获取一次输入,还是一次又一次地获取输入?我看到您正在使用而循环。对于这个赋值,它给出了一个提示,说使用循环和Character.isDigit()函数,但是我在哪里可以找到有关该函数的任何信息,请参阅本章。所以我不知道我是否调用了这个函数。