2011-10-07 85 views
1

以下代碼旨在修剪我的字符串。不幸的是,它消除了「conf」值。修剪字符串刪除超過需要

我做得對嗎?

這是什麼東西做的是加入了雙HTML響應地址,所以我除去第一URL是「的conf」

String pageIdUrl = response.getRedirectUrl(); 

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

你的代碼片段末尾似乎有些垃圾...? –

+0

dump conf.toString()引用和它的長度;你確定它不會比你期望的更長嗎? (最後的空格還是任何其他非Visibile字符?) – ShinTakezou

回答

8

這樣看來,有是停止你如果放錯位置的分號按照您的預期工作。

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())); 
             ^

注意這裏的分號。當時的行動是空的:如果條件得到滿足,什麼都不做。

{ 
    pageIdUrl = pageIdUrl.substring(conf.toString().length()); 
} 

這部分是否符合條件,因爲它只是另一個後續的聲明。是的,你可以使用這樣的大括號。他們爲局部變量名稱創建一個額外的範圍。

發生什麼事情是你的字符串實際上並不是以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可能會提供類似的東西。