public static void main(String[] args) {
// TODO code application logic here
Scanner in =new Scanner(System.in);
long n=in.nextLong();
int i,j,k;
//byte k;
int count=0;
String str[];
str= new String[100000];
for(i=0;i<n;i++)
str[i]=in.nextLine();
for(i=0;i<n;i++)
for(j=0;j!=i&j<n;j++)
for(k=0;str[i].charAt(k)!=-1||str[j].charAt(k)!=-1;k++)
{
if(str[i].charAt(k)!=str[j].charAt(k))
break;
else
count++;
}
System.out.print(count);
}
-5
A
回答
0
你是否来自C背景?这不是你如何检查,如果你是在Java中的字符串的结尾(甚至用C你想要&&
不||
反正):
str[i].charAt(k)!=-1||str[j].charAt(k)!=-1
你想要的是一样的东西:
k < str[i].length() && k < str[j].length()
0
因为您试图访问索引无效的字符串中的字符。
for(i=0;i<n && i < str.length;i++)
for(j=0;j!=i&j<n;j++)
for(k=0;(str[i].length() > k && str[j].length() > k) ;k++)
{
if(str[i].charAt(k)!=str[j].charAt(k))
break;
else
count++;
}
0
使用此代码
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
for (i = 0; i <n; i++) {
str[i] = br.readLine();
}
代替
for (i = 0; i <n; i++) {
str[i] = in.nextLine();
}
你所有的问题将得到解决。
或者你可以发射一个空白
in.nextLine();
跳过,可以通过按这样
in.nextLine();
for (i = 0; i <n; i++) {
str[i] = in.nextLine();
}
+0
为什么这会解决这个问题?他得到ArrayOutOfBound而不是NullPointerException! –
+0
这是因为in.nextInt()方法不会消耗输入的最后一个换行符(它是在按下Enter键后生成的),并且在for循环中,在下一次调用in.nextLine() 。所以在i = 0时的循环中,值为str [i = 0] =“\ n”,当他试图访问str [j = 0] .charAt(k = 0)时,他得到这个错误“java.lang。 StringIndexOutOfBoundsException“,因为该字符串(str [j = 0])的长度是-1。 –
相关问题
- 1. java.lang.StringIndexOutOfBoundsException:字符串索引超出范围
- 2. 代码提供“java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:14”
- 3. 为什么我的字符串索引超出范围?
- 4. IndexError:字符串索引超出范围 - Django - 为什么?
- 5. 错误:字符串索引超出范围,为什么?
- 6. 为什么我收到字符串索引超出范围:97?
- 7. IndexError:字符串索引超出范围..为什么?
- 8. Java.Lang.StringIndexOutOfBoundsException:字符串索引超出范围:5
- 9. Hibernate的SQL异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围
- 10. Java错误java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0
- 11. java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:14
- 12. 异常线程“main” java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0
- 13. java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-4
- 14. 异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0
- 15. java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:7
- 16. 线程主异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:6
- 17. Spring&Hibernate java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0
- 18. java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:4
- 19. java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-2
- 20. java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1在com.sun.faces.renderkit.ServerSideStateHelper.getState
- 21. java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-23错误
- 22. 索引超出范围,但为什么?
- 23. 为什么索引超出范围? (Python)
- 24. 为什么我得到这个错误“IndexError:字符串索引超出范围”
- 25. 为什么此代码显示参数索引超出范围异常?
- 26. 字符串索引超出范围意味着什么?
- 27. 为什么我在代码中获得索引超出范围?
- 28. 为什么这个代码访问向量超出了它的范围?
- 29. 它为什么会抛出索引超出范围错误?
- 30. 为什么这个源代码是“列表索引超出范围”
你永远检查您的字符串长度的输入键所产生的新的生产线。为什么*不会抛出异常? – shmosel
你做了什么来调试呢?即使printf调试也会显示问题。循环显示n和i的值。使用'length'属性来确认你的猜测。请参阅:https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – jdv
@Marvin'n'影响数组索引,这不是这里的直接问题。 – shmosel