2011-10-07 4 views
1

아래 코드는 제 문자열을 다듬기위한 것입니다. 불행히도 그것은 'conf'값 이상을 제거합니다.트리밍 문자열은 필요 이상으로 제거합니다

제대로 했습니까?

이것이 이중 HTML 응답 주소를 추가하고있다, 그래서 난 'conf의'

String pageIdUrl = response.getRedirectUrl(); 

if(pageIdUrl.startsWith(conf.toString())); 
{ 
    pageIdUrl = pageIdUrl.substring(conf.toString().length()); 
} 
+0

코드 스 니펫 끝 부분에 약간의 쓰레기가있는 것 같습니다 ...? –

+0

덤프 된 conf.toString() 및 길이; 예상보다 오래 걸리지 않았습니까? (최종 공백 또는 다른 비 가시성 문자?) – ShinTakezou

답변

8

당신의 경우 정지되는 잘못된 세미콜론이 있다는 것을 나타납니다가 첫 번째 URL을 제거 해요 성명서는 예상대로 일하고 있습니다.

String pageIdUrl = response.getRedirectUrl(); 

if(pageIdUrl.startsWith(conf.toString())) 
{ 
    pageIdUrl = pageIdUrl.substring(conf.toString().length()); 
} 
Console.WriteLine(conf.toString()); 
Console.WriteLine(pageIdUrl); 
+2

+1 : 좋은 캐치! – dacwe

+0

고마워, 루키 실수! – user979587

0
if(pageIdUrl.startsWith(conf.toString())); 
             ^

참고 여기에 세미콜론. then-action은 비어 있습니다. 조건이 충족되면 아무 것도 수행되지 않습니다.

이 부분은 다른 후속 제표이므로 조건이 충족되는지 여부에 관계없이 발생합니다. 네, 그런 중괄호를 사용할 수 있습니다. 로컬 변수 이름에 대해 추가 범위를 만듭니다.

문자열이 실제로 conf 문자열로 시작하지 않으며 어쨌든 chomped가 발생합니다.

0

if 문 다음에 세미콜론을 사용했습니다.

String pageIdUrl = "conf:xxx"; 
     String conf = "conf"; 

     if (pageIdUrl.startsWith(conf.toString())){   
      pageIdUrl = pageIdUrl.substring(conf.toString().length()); 
      System.out.println(pageIdUrl); 
     } 
0

다른 사람들도 지적했듯이 문제는 여분의 ";"입니다. 팁 : Eclipse 사용자의 경우 "빈 선언문"에 대한 컴파일/오류 경고를 경고 또는 오류로 설정하는 것이 좋습니다. Eclipse는 에디터에서이 문제를 표시합니다. 다른 IDE는 비슷한 것을 제공 할 수도 있습니다.