私は以下を含むテキストファイルを持っています: ボブは "ストア"ストアに "ミルクを買う"ミルクを買うために行った。文字列から引用符で囲まれた部分文字列を削除するにはどうすればよいですか? (Regexなし)
私はstring1からすべての引用されたマテリアルを削除したいので、単にBobがミルクを購入するために店に行った。
Regexを使用せずにこれを行う方法はありますか?私は現在、split()メソッドを使用しようとしています。テキストファイルをsplit()を使用してstring1という名前のString変数に読み込み、newStringという名前の新しい文字列に値を格納し直します。
String string1 = new Scanner(new File("C:/bob.txt")).useDelimeter("\\A").next();
String newString = "";
String[] arr = string1.split("\"");
for (int i=0; i<arr.length-1; i++){
newString += arr[y];
}
私はJavaには非常に慣れていて、分割方法を正しく使用しているかどうかはわかりません。私がnewStringを印刷するとき、「ボブがストアに店に行って牛乳を買う店に行った」
私の問題は「ボブが牛乳を買うために店に行った」と言わなければならないということです。文字列の最後にピリオドがなくなり、「ストア」が2回書き込まれます。
誰でもこの仕事をするのに役立つことができますか? (split()よりも良い方法があれば、私は知りたいと思います。引用符で囲まれたセクションをいくつでも含む文字列を扱いたいと思います。パターンマッチング/正規表現もありません)ありがとう!
String s = "Bob blah blah \"quote\" blah \"another quote\"";
System.out.println(s);
String string = s.chars()
.filter(c -> c != '"')
.collect(StringBuilder::new,
StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
System.out.println(string);
別のアプローチは次のようになり、単にchar
配列をループし、二重引用符、例えばをスキップする:例えば
なぜ正規表現を使いたくないのですか? – arshajii
'String#replaceAll'メソッドの使用を推奨しましたが、正規表現を使用します。 – AntonH
"私は現在split()メソッドを使用しようとしています" splitは正規表現を使用しています... – Pshemo