我有这段代码,它应该在所选文件中找到一个已知方法的名称:
String[] sorok = new String[listaZ.size()];
String[] sorokPlusz1 = new String[listaIdeig.size()];
boolean keresesiFeltetel1;
boolean keresesiFeltetel3;
boolean keresesiFeltetel4;
int ind=0;
for (int i = 0; i < listaZ.size(); i++) {
for (int id = 0; id < listaIdeig.size(); id++) {
sorok = listaZ.get(i);
sorokPlusz1 = listaIdeig.get(id);
for (int j = 0; j < sorok.length; j++) {
for (int jj = 1; jj < sorok.length; jj++) {
keresesiFeltetel3 = (sorok[j].equals(oldName)) && (sorokPlusz1[id].startsWith("("));
keresesiFeltetel4 = sorok[j].startsWith(oldNameV3);
keresesiFeltetel1 = sorok[j].equals(oldName) && sorok[jj].startsWith("(");
if (keresesiFeltetel1 || keresesiFeltetel3 || keresesiFeltetel4) {
Array.set(sorok, j, newName);
listaZarojeles.set(i, sorok);
}
}
System.out.println(ind +". index, element: " +sorok[j]);
}
ind++;
}
}
listaZ是一个ArrayList,元素由'('和''表示,listaIdeig是这个列表,没有第一行(因为keresesifeltetel3) oldNameV3是:oldName +() 如果这看起来像这样,我想找一个方法的名字: 方法名 (){...
要做到这一点,我需要keresesifeltetel 3中的下一行,但我无法使其正常工作。它找不到任何东西或丢失错误。 现在它写出输入文件的元素大约15次,然后它应该;并在keresesifeltetel3上显示错误,并且:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
答案 0 :(得分:0)
我认为您的问题出在此处:sorokPlusz1[id]
。 id
似乎不在sorokPlusz1
的范围内。我怀疑您要使用jj
,而jj
应该跨越sorokPlusz1
的范围,而不是sorok
&sorok[jj].startsWith("(")
sorokPlusz1[jj].startsWith("(")
应该是sorok
。
但请注意,我在很大程度上推测,因为我不能100%确定你要做的事情或者listaZ和listaIdeig的样子。
您正在创建尺寸为listaZ
的尺寸的sorok = listaZ.get(i);
,然后执行此操作:ArrayList<String[]>
。这显然是不对的。不知道listaZ的确切类型使得很难告诉你它有什么问题。如果它是String[] sorok = new String[listaZ.size()];
,那么就改变
String[] sorok = null;
到String[] sorok;
或ArrayList<String>
。如果是sorok[i] = listaZ.get(i);
那么您可能想要做更像sorok
现在提供一些关于在这里提问的一般性说明:(重复评论中所说的内容)(本着帮助您成功获得本网站问题答案的精神)
您的问题通常不清楚。阅读完问题和代码后,我仍然不知道你要做什么以及输入变量(listaZ和listaIdeig)是什么样的。
使用非英语变量名称会使任何英语人士更难以提供帮助。即使将array
更改为keresesiFeltetelX
和bX
更改为{{1}}也会更好(尽管仍然不是很好)。拥有无法理解的长变量名称会使其更难阅读。
评论您的代码。足够的评论(几乎每行都有)使您更容易理解您的代码。
实施例。如果您难以正确解释您想要做什么(用英语),您可以随时提供一些示例,这些示例可以帮助您解释很多(这样做一般来说这是一个好主意)。请注意,一个很好的例子是提供输入和所需的输出(以及实际输出,如果适用)。