Java 整数字符串检查器
获得了大部分代码,但无法理解为什么会出现编译器错误。错误是:Java 整数字符串检查器,java,Java,获得了大部分代码,但无法理解为什么会出现编译器错误。错误是: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4 at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47) at java.base/java.lang.String.charAt(String.j
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
at java.base/java.lang.String.charAt(String.java:693)
at LabProgram.main(LabProgram.java:13)
我对java有点陌生,所以我对错误消息不太熟悉。但是我的程序应该检查数字0到9,并报告它们是否是带有yes的数字。如果它包含除数字以外的任何内容,它将输出一个“否”。如果有人能看到我做错了什么,这将有所帮助
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
boolean thing = true;
String userInput;
userInput = scnr.nextLine();
for (int i = 0; i <= userInput.length() && thing == true; i++) {
if (userInput.charAt(i) == '0' || userInput.charAt(i) == '1' || userInput.charAt(i) == '2' ||
userInput.charAt(i) == '3' || userInput.charAt(i) == '4' || userInput.charAt(i) == '5' ||
userInput.charAt(i) == '6' || userInput.charAt(i) == '7' || userInput.charAt(i) == '8' ||
userInput.charAt(i) == '9') {
thing = true;
if (i == userInput.length()) {
System.out.print("yes");
System.out.print("");
}
}
else{
System.out.print("no");
System.out.print(" ");
thing = false;
}
}
}
}
import java.util.Scanner;
公共类实验室计划{
公共静态void main(字符串[]args){
扫描仪scnr=新扫描仪(System.in);
布尔事物=真;
字符串用户输入;
userInput=scnr.nextLine();
对于(int i=0;i),这不是编译器错误-编译器错误是编译时显示的错误(javac
命令)。这是运行程序时得到的异常。字符串索引从零开始。如果字符串只有1个字符,则charAt
的唯一有效索引为零;s.charAt(1)
将为您提供所看到的StringIndexOutOfBoundsException。请参阅将循环更改为i
(并将i==userInput.length()更改为i==userInput.length()-1有效的签名userInput=scnr.nextLine();字符串yesNo=“否”if(userInput.matches(\\d+){yesNo=“是”;)System.out.println(yesNo);