0

私はテキストファイルの各行を読んでおり、ファイルでいくつかのことを行い、Javaを使用して同じファイルに書き戻しています。そして、行内の各値の位置(インデックス)が重要です。したがって、各値の場所を保持する必要があります。

特定の場所 (インデックス) の「スペース」文字を削除するにはどうすればよいですか?

たとえば、以下は私が読んだ行です。

.... ABC   123....  --There are 3 spaces between ABC and 123

基本的にはABCと123の間のスペース2つで上記の行を書きたいと思っています。

最初は、文字列のreplaceAllを使用していましたが、それは値を右に1つ、さらに3つのスペースだけシフトするだけです。したがって、replaceAll だけでなく、それ以上のものが必要だと思います。

今、私は ABC が見つかった場所の位置を取得し、その 1 つのスペースを削除しようとしています。

4

4 に答える 4

0

削除する文字列sの位置n(ゼロベース)がわかっているので、次のようにします。

s = s.substring(0, n) + s.substring(n + 1);
于 2012-09-18T19:05:27.400 に答える
0

単一の文字を削除する場合は、単に使用しますStringBuilder.deleteCharAt

final int pos = ...;
str = new StringBuilder(str).deleteCharAt(pos).toString();

アプローチをしないことを明示的にお勧めします。substring

于 2012-09-18T19:19:25.100 に答える
0

文字列を char 配列に変換してループすることもできますが、それは良い方法ではありません。

または、次のようにすることもできます。

myString = myString.substring(0,(position of first space))+
                myString.substring((position of first space)+1, myString.length);

またはそのようなもの

于 2012-09-18T19:05:51.083 に答える
0

文字列全体を検索できませんか? 最初のパラメータには 3 つのスペースがあり、2 番目のパラメータには 2 つのスペースがあります

replaceAll("ABC   123", "ABC  123");

またはABCがキー入力の場合

replaceAll("ABC   ", "ABC  ");

最初のパラメーターには 3 つのスペースがあり、2 番目のパラメーターには ABC の後に 2 つのスペースがあります

于 2012-09-18T19:02:42.527 に答える