2011-08-05 19 views
1

URLから.txtファイルを解析して文字列をユーザーに吐き出すアプリがあります。私は文字列の最初の16文字を削除したい。これどうやってするの?文字列から文字を削除する

EDIT- 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の単一パラメータの過負荷は、文字列の残りの全体を取ります開始インデックス。 2つのパラメータのオーバーロードは、最初の引数で指定されたインデックスから始まり、2番目の引数で指定されたインデックスで終了します。だから、最初の16の「スキップ」の後の最初の3つの文字を取得するには、あなたが使用したい:あなたが戻って同じ変数に割り当てる必要はありません

line = line.substring(16, 19); 

注 - しかし、あなたはそれがdoesnのことを理解する必要がありますがあなたが呼び出す文字列に影響しません。だから、:

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

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

EDIT:あなたが欲しいファイル全体の最初の16個の文字を、削除する場合:

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

あなたはごとのライン基づいて、あなたがしたいことをしたい場合:これらの両方は、余分な検証が必要な場合があり

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

注 - あなたは16文字未満の文字列にsubstring(16)を呼び出す場合は、それがexceptiがスローされますに。

+0

は、残念ながら私はまだ文脈にそれを置く助けを少し必要です。元の投稿を編集します。私はURLから解析したものの16文字を削除したい。 – Slicekick

+0

@ Slicekick:各行から、またはファイル全体の先頭から?私は後者の場合の編集を含め、前者の場合も含めます。 –

+0

これで完了です!それを説明してくれてありがとう、本当に感謝します。私はある日、Googleで働くことを願っています。 – Slicekick

0

これを試してみてください:

理にかなっている
String newString = oldString.substring(16); 
関連する問題