我尝试编码提供第一个可重现字符的方法 但是当字符串没有任何内容时,我会收到此错误:
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));
}
答案 0 :(得分:1)
将i<=str.length
变成i<str.length
您的字符串只有三个字符,这意味着数组中的最大索引为2
答案 1 :(得分:1)
for(int i=0; i<=str.length; i++ ) {`
删除相等项,因为如果字符串的长度为n,则最大可访问索引为n-1