Javaの文字列配列からアルファベット以外の文字をすべて削除する 質問する

Javaの文字列配列からアルファベット以外の文字をすべて削除する 質問する

Javaからアルファベット以外の文字をすべて削除しString[]、文字列を小文字に変換するメソッドを書こうとしています。正規表現を使用して、アルファベット以外の文字をすべて に置き換えようとしましたが""、出力結果ではそれができません。コードは次のとおりです。

static String[] inputValidator(String[] line) {
    for(int i = 0; i < line.length; i++) {
       line[i].replaceAll("[^a-zA-Z]", "");
       line[i].toLowerCase();
    }
    return line;
}

-ただし、アルファベット以外の文字 ( またはなど)を含む入力を指定しようとすると、.それらは削除されないため、出力にもそれらが含まれます。

入力例

A dog is an animal. Animals are not people.

私が得ている出力

A
dog
is
an
animal.
Animals
are
not
people.

期待される出力

a
dog
is
an
animal
animals
are
not
people

ベストアンサー1

問題は、文字列が不変。 それぞれのメソッド呼び出し現在の値はそのままStringで、変更を表す新しい値を返します。返された値を配列に格納するだけです。StringString

line[i] = line[i].replaceAll("[^a-zA-Z]", "");
line[i] = line[i].toLowerCase();

各メソッドは を返すため、Stringメソッド呼び出しを連結することができます。これにより、最初のメソッドの結果に対して 2 番目のメソッド呼び出しが実行され、両方のアクションを 1 行で実行できるようになります。

line[i] = line[i].replaceAll("[^a-zA-Z]", "").toLowerCase();

おすすめ記事