2012-11-11 75 views
-1

我有這樣的代碼,它應該在所選擇的文件中找到預先知道方法的名稱:查找字符串

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,通過spearated元素「(」和' 」,listaIdeig是這份名單中,沒有第一行(因爲keresesifeltetel3的) oldNameV3是:使用oldName +() 我想找到一個方法的名稱,如果這是這樣看: 方法名 (){...

要做到這一點,我需要keresesifeltetel 3中的下一行,但我不能讓它正常工作。它沒有發現任何東西或丟失錯誤。 現在它寫出輸入文件的元素約15次,然後它應該;並顯示錯誤的keresesifeltetel3和:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 
+0

'keresesiFeltetel1'請考慮使用英文屬性名稱(至少對於SO帖子)。 –

+0

@AndrewThompson您的評論與[爲什麼不應該使用匈牙利語符號](http:// stackoverflow。COM /問題/ 111933 /爲什麼 - 不應該,我使用的匈牙利表示法)? ;-) –

+0

@ arne.b No ..它是關於使用由英語人士創建的計算機語言以及以英語進行的論壇中使用捷克語(?)屬性名稱。我想那個'眨眼'的意思是說這是一個笑話,但我不明白。 –

回答

0

我覺得你的問題是在這裏:sorokPlusz1[id]id似乎沒有跨越sorokPlusz1的範圍。我懷疑你想要使用jjjj應該跨越sorokPlusz1的範圍而不是sorok,而sorok[jj].startsWith("(")應該是sorokPlusz1[jj].startsWith("(")

但請注意,我在很大程度上是猜測,因爲我不是100%確定您要做什麼或者listaZ和listaIdeig是什麼樣子。

您正在創建sorok,其尺寸= listaZ的大小,然後您可以這樣做:sorok = listaZ.get(i);。這顯然是不正確的。不知道listaZ的確切類型,很難告訴你它有什麼問題。如果它是ArrayList<String[]>,則將 String[] sorok = new String[listaZ.size()];更改爲String[] sorok = null;String[] sorok;。如果是ArrayList<String>,那麼你可能想爲約發問這裏的一般常識做更多的東西一樣sorok[i] = listaZ.get(i);

現在:(有什麼在評論中說的一些重複)(在幫助的精神,你是成功的在獲得該網站上的問題的答案)。

你的問題一般不清楚。讀完你的問題和代碼後,我仍然不知道你想要做什麼以及輸入變量(listaZ和listaIdeig)是什麼樣的。

使用非英文變量名稱會使任何英語發音者難以提供幫助。即使更改sorokarraykeresesiFeltetelXbX會更好(雖然仍然不是很好)。具有不可理解的長變量名使得閱讀困難得多。

評論你的代碼。足夠的評論(幾乎每一行)都使得理解代碼變得更容易。

例子。如果你無法正確解釋你想要做什麼(用英語),你可以隨時提供幾個例子來幫助你解釋很多事情(一般來說這樣做是個好主意)。請注意,一個很好的例子是提供輸入和期望的輸出(以及實際輸出,如果適用)。