2011-08-05 51 views
1

我有一個應用程序,我從URL中解析.txt文件並將字符串吐出給用戶。我想刪除字符串的前16個字符。我怎樣才能做到這一點?刪除字符串中的字符

編輯 - 我想從我的http調用收到的數據中刪除16個字符。

public void onClick(View src) { 
     switch(src.getId()) { 
     case R.id.buttonRetrieveMetar: 


      InputMethodManager imm = (InputMethodManager) 
getSystemService(Context.INPUT_METHOD_SERVICE); 

imm.hideSoftInputFromWindow(EditTextAirportCode.getWindowToken(), 0); 


      textDisplayMetar.setText (""); 


      airportcode = EditTextAirportCode.getText().toString(); 
      url = urlmetar + airportcode + ".TXT"; 

      //Added 06-27-11 METAR code 
      textDisplayMetar.setText (""); 

      try { 
       HttpGet httpGet = new HttpGet(url); 
       HttpClient httpclient = new DefaultHttpClient(); 
       // Execute HTTP Get Request 
       HttpResponse response = httpclient.execute(httpGet); 
       content = response.getEntity().getContent(); 
       BufferedReader r = new BufferedReader(new  
InputStreamReader(content)); 
       StringBuilder total = new StringBuilder(); 
       String line; 

       while ((line = r.readLine()) != null) { 
        total.append(line); 
       } 
       textDisplayMetar.append("\n" + total + "\n"); 
        } catch (Exception e) { 
       //handle the exception ! 
      } 


    break; 

謝謝!

回答

9

不能修改字符串本身,但您可以創建一個子很輕鬆地:

line = line.substring(16); 

substring單參數超負荷發出後取字符串的其餘部分的整個開始索引。雙參數重載從第一個參數指定的索引開始,到第二個參數指定的索引(獨佔)結束。因此,要「退出」前16後的前三個字母搞定,你會使用:

line = line.substring(16, 19); 

注意,您不必指定回同一個變量 - 但你要明白,它不不會影響您打電話給它的字符串對象。所以:

String original = "hello world"; 
String secondPart = original.substring(6); 

System.out.println(original); // Still prints hello world 
System.out.println(secondPart); // Prints world 

編輯:如果您要刪除整個文件的前16個字符,你想:

textDisplayMetar.append("\n" + total.toString().substring(16) + "\n"); 

如果你想有一個每行的基礎上,你想:

while ((line = r.readLine()) != null) { 
    total.append(line.substring(16)); 
} 

注意,這兩種可能需要額外的驗證 - 如果你有少於16個字符的字符串調用substring(16),就會拋出excepti上。

+0

這是有道理的,可惜我還需要幫助把它的來龍去脈一點點。我將編輯我的原始文章。我想刪除我從網址解析的16個字符。 – Slicekick

+0

@Slicekick:從每一行開始,還是從整個文件開始?我已經爲後一種情況包含了一個編輯,並且還會包含前一種情況。 –

+0

完成了!感謝您解釋它,真的很感激它。我希望有一天能在Google工作。 – Slicekick

0

試試這個:

String newString = oldString.substring(16);