简体   繁体   English

异常字符串索引超出范围

[英]Exception string index out of bounds

i have this error in my java program, any help !! 我的Java程序中有此错误,任何帮助!

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 19
    at java.lang.String.charAt(Unknown Source)
    at Password_Constrainer.main(Password_Constrainer.java:31)

here is the code 这是代码


public static void main(String[] args) {
        // TODO Auto-generated method stub

    Scanner input = new Scanner(System.in);
    System.out.print("Please Enter Your Password: ");
    String inputString = input.nextLine();
    System.out.println(inputString);

    if (inputString.length() < 10) // less than 10 characters
    {
        System.out.println("Validation failed, word was too short");
    } else // Contain a letter in upper case
    {
        int sum1 = 0;
        for (int i = 0; i <= inputString.length(); i++) {
            if (Character.isUpperCase(inputString.charAt(i)))
                sum1++;
        }
        if (sum1 == 0)
            System.out.println("Validation failed, word has no Capital Letters");

can you help me in this ?? 你能帮我吗?

Change 更改

for (int i = 0; i <= inputString.length(); i++) 

to

for (int i = 0; i < inputString.length(); i++) 

If you do <= It will iterate in inputString.length() index, char which not exists. 如果执行<= ,它将在inputString.length()索引inputString.length()不存在的char inputString.length()进行迭代。

'i' value can't be equal to inputString's length . “ i”值不能等于inputString的length。 So , change 所以,改变

i <= inputString.length()   

to

i < inputString.length()

in loop. 循环中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM