• ベストアンサー

テキストファイルの任意の文字以降の文字列を削除したい

test.txt AAA+あいうえお BBB+かきくけこ CCC+さしすせそ DDD+たちつてと EEE+なにぬねの 上記(test.txt)のようなテキストファイルから、各行の+以降の文字列を削除して、 以下(result.txt)のようなテキストファイルを生成させるプログラムを作成させたいです。 result.txt AAA BBB CCC DDD EEE このようなプログラムを作るにはどのようにすればよいでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

コレでどうでしょう。 一部break文が一行ありますが どうしても途中エラーが発生 したので入っています。 import java.io.*; public class Sample { public static void main(String[] args){ try{ BufferedReader br= new BufferedReader(new FileReader("C:\\test.txt")); PrintWriter pw= new PrintWriter(new BufferedWriter(new FileWriter("C:\\result.txt"))); String str1=""; String str2=""; int j=0; while ((str1 = br.readLine()) != null) { for(int i=0;i<str1.length();i++){ j=str1.indexOf("+"); } if(str1.length()==0){ break;} str2=str1.substring(0,j); pw.println(str2); } pw.close(); br.close(); }catch(IOException e){ System.out.println("IOエラー"); } } }

shows
質問者

お礼

ご回答ありがとうございます。 サンプルプログラムまで書いていただきありがとうございます。 とても参考になりました。 上記を試したところ、無事問題を解決できました。

その他の回答 (1)

回答No.1

回答をベタで書くと「回答者に作業依頼」したことになって削除対象となってしまう可能性があるのでヒントだけ。 BufferedReader というクラスを使ってファイルを指定します。 readLine() というメソッドを使ってテキストファイルからデータを取り出し。 String aaa = "AAA+あいうえお"; String bbb = aaa.replaceAll("\\+.*", ""); こーんな感じで+文字以降の文字を削除します。 replaceAll で正規表現を使って文字削除すれば一発。 正規表現を勉強すればもっといろいろ応用可能です。 BufferedWriter というクラスで文字を書き込む。 あとはこれをループして処理すればOK。

shows
質問者

お礼

ありがとうございます。 とても参考になりました。 自分でも正規表現についてこれから勉強していきます。

関連するQ&A