首页 > 解决方案 > 整数字符串检查器

问题描述

获得了大部分代码,但无法弄清楚为什么会出现编译器错误。错误是:

  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 是否是数字,并报告它们是否是数字。如果它包含除数字以外的任何内容,它将输出否。如果有人能看到我做错了什么,那会有所帮助

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;
            }
        }
    }
 }

标签: java

解决方案


推荐阅读