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
で、変更を表す新しい値を返します。返された値を配列に格納するだけです。String
String
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();