Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 11

前端 未结 4 1580
别那么骄傲
别那么骄傲 2020-12-16 06:54

EVerytime I write any code similar to this one, I get this type of error. It\'s building a file but not letting it run, it just throws exception. I\'m not familiar with exce

相关标签:
4条回答
  • 2020-12-16 07:06

    try this:

    public static void main(String args[]) {
    String name = "Umer Hassan";
    String name1 = "Hassan Umer";
    char[] name2 = new char[name.length()];
    
    for (int j = 0; j < name.length(); j++ {
        for (int i = 0; i < name.length(); i++) {
            if (name.length() == name1.length()) {
                if (name.charAt(i) == name1.charAt(j)) {
                    name2[i] = name1.charAt(j);
                }
            }
        }
    }
    

    }

    0 讨论(0)
  • 2020-12-16 07:18

    Your loop control variables (i / j) are going up to name.length() - which is an out of bounds index (since the max index of a string/list is len - 1 - remember the first index is 0).

    Try using i < name.length() and j < name.length() as the loop conditions instead.

    0 讨论(0)
  • 2020-12-16 07:18

    You should write the for cycle as

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

    The indexes in the strings are zero-based, as in the arrays, so they have a range from 0 to length - 1. You go to length, which is outside of bounds.

    0 讨论(0)
  • 2020-12-16 07:27
    for (int i=0; i<=name.length();i++){
    

    String indexes are starting from 0 .

    Example :

    String str = "abc";
    int len = str.length(); //will return 3
    

    str.charAt(3); will throws StringIndexOutOfBoundsException charAt starting position is 0 . So the limit is length-1 .

    You have to change your for loop to for (int i=0; i<name.length();i++){

    0 讨论(0)
提交回复
热议问题