現在のところ、私のコードは、リターンで区切られている場合にのみ単語を編集します。スペースやコンマで単語を区切っても、置き換えられません。テキスト文書の特定の単語を編集するにはどうすればよいですか?
E.G.私が 'hey'を1行に、 'hi'を次の行に付けると。もし私が望むなら、私のコードは両方を置き換えることができます。しかし、もし私が 'hey'を1行に持ち、 'hi'を 'hey'の隣にカンマで区切っていれば、私のコードはどちらにも置き換えられません。
私のコードの目的は、.CSVファイル内の単語を置き換えることですが、コードがカンマまたはスペースで区切られた単語を置き換えることができない場合は機能しません。ここで
は、ボタンを押すだけでアクティブに私のコードです:
try{
// Input the file location into Path variable 'p'
Path p = Paths.get("test test.txt");
//Path p = Paths.get("tiger.csv");
//Read the whole file to a ArrayList
List<String> fileContent = new ArrayList<>(Files.readAllLines(p));
//Converting user input from editSerialField to a string
String strSerial = editSerialField.getText();
//Converting user input from editLocationField to a string
String strLocation = editLocationField.getText();
//This structure looks for a duplicate in the text file, if so, replaces it with the user input from editLocationField.
for (int i = 0; i < fileContent.size(); i++)
{
if (fileContent.get(i).equals(strSerial))
{
fileContent.set(i, strLocation);
break;
}
}
// write the new String with the replaced line OVER the same file
Files.write(p, fileContent);
}catch(IOException e)
{
e.printStackTrace();
}
どのように私は、コンマまたはスペースで区切られた単語を編集することができますか?また、大文字か小文字かにかかわらず、単語を置き換えることができればうまくいくでしょう。これをどうやって実行しますか?
ありがとうございます。
次のを持っているあなたのコードで
あなたは個々の単語を置き換えようとしているのに対し、/行全体/既知の文字列とのみ一致しているようです。あなたはラインを見て、個々の言葉を置き換えるために言葉を選ぶ必要があります。 'Scanner'クラスまたはCSVパーサーを使用することを検討してください。 – BadZen
' Scanner'を使用しているとき、 'path'に変換することはできません。 'List 'は' Scanner s = new Scanner( "test test.txt"); 'であるのに対して、リスト fileContent =新しいArrayList <>(Files.readAllLines(s));私はファイル全体を読むためにScannerを別のやり方で使用するつもりですか? –
juiceb0xk
スキャナ機能は 'Files.readAllLines()'の代わりに使用され、 'スキャナ 'は読み取りを行います。 – BadZen