当我想返回空char时,我得到java.lang.ArrayIndexOutOfBoundsException:3 [复制]

问题描述 投票:-1回答:2

我尝试编写方法,给出第一个重复出现的char但是当字符串没有任何时我得到这个错误:

java.lang.ArrayIndexOutOfBoundsException: 3

码:

static char firstReccuring(char str[]){
    HashSet<Character> map = new HashSet<>();

    for(int i=0; i<=str.length; i++ ) {
        char ch = str[i];
        if(map.contains(ch)) {
            return ch;
        }else {
            map.add(ch);
        }
    }

    return '0';
}

public static void main(String[] args) {
    String str = "abc";
    char[] arr = str.toCharArray();
    System.out.println(firstReccuring(arr));

}
java hashset
2个回答
1
投票

i<=str.length变成i<str.length你的String只有三个字符,这意味着数组中最大的索引是2


1
投票
for(int i=0; i<=str.length; i++ ) {`

删除等于因为如果字符串的长度为n,则最大可访问索引为n-1

© www.soinside.com 2019 - 2024. All rights reserved.