2012-11-11 4 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에이고를 ', listaIdeig는 첫 번째 줄이없는이 목록입니다 (keresesifeltetel3 때문에) oldNameV3은 다음과 같습니다 oldName +() 메서드 이름이 아래와 같으면 찾을 수 있습니다 : methodname () {...

이렇게하려면 keresesifeltetel 3에 다음 줄이 필요하지만 제대로 작동하게하십시오. 아무것도 찾지 못하거나 오류를 포기한 것이 아닙니다. 지금은 입력 파일의 요소를 약 15 번 작성한 다음해야합니다. 및 keresesifeltetel3에 오류를 표시하고 :

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

'keresesiFeltetel1' 영어로 속성 이름을 사용하는 것을 고려하십시오 (최소한 SO 게시물의 경우). –

+0

@AndrewThompson 귀하의 의견은 [왜 헝가리어 표기법을 사용해야하지 않습니까?] (http : // stackoverflow.com/questions/111933/why-shouldnt-i-use-hungarian-표기법)? ;-) –

+0

@ arne.b 아니요. 영어로 진행된 컴퓨터 언어와 영어로 진행된 포럼에서 체코 어 (?) 속성 이름을 사용하는 것입니다. 나는 '윙크'란 농담 이었음을 의미한다고 생각합니다. 그러나 나는 그것을 얻지 못합니다. –

답변

0

나는 당신의 문제에 대해 생각 : sorokPlusz1[id]. idsorokPlusz1의 범위를 벗어나는 것 같지 않습니다. jj을 사용하고 jjsorok 대신 sorokPlusz1의 범위로, sorok[jj].startsWith("(")sorokPlusz1[jj].startsWith("(")으로 설정해야한다고 생각합니다.

하지만 나는 당신이 무엇을하려고하는지, 또는 listaZ와 listaIdeig처럼 보이는지 100 % 확신하지 못하기 때문에 크게 추측하고 있습니다.

크기가 listaZsorok을 만들고 다음을 수행하십시오. 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)가 어떻게 생겼는지 거의 알지 못합니다.

영어가 아닌 변수 이름을 사용하면 영어 사용자가 도움을 받기가 더 어려워집니다. 심지어 sorokarraykeresesiFeltetelX에서 bX으로 변경하는 것이 좋습니다 (여전히 좋지는 않지만). 이해할 수없는 긴 변수 이름을 갖는 것은 읽는 것을 훨씬 더 어렵게 만듭니다.

코드에 주석을 달아주십시오. 거의 모든 줄에서 충분한 설명을하면 코드를 훨씬 쉽게 이해할 수 있습니다.

예제. 당신이하고 싶은 것을 영어로 설명하기가 어렵다면, 당신의 설명을 크게 도와 줄 수있는 몇 가지 예를 항상 제공 할 수 있습니다 (그리고 이것을하는 것이 일반적으로 좋은 생각입니다). 좋은 예는 입력과 원하는 출력 (그리고 적용 가능한 경우 실제 출력)을 제공하는 것입니다.