从Java中的String数组中删除所有非字母字符
我正在尝试编写一种方法,该方法将从Java中删除所有非字母字符String[]
,然后将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.
Adog
is
an
animal.
Animals
are
not
people.
adog
is
an
animal
animals
are
not
people
回答:
问题是您的更改没有存储,因为字符串是不可变的。每个方法调用都返回一个String
表示更改的新值,而当前值String
保持不变。您只需要将返回的数据存储String
回数组中即可。
line[i] = line[i].replaceAll("[^a-zA-Z]", "");line[i] = line[i].toLowerCase();
因为每个方法都返回a,所以String
您可以将方法调用链接在一起。这将在第一个方法的结果上执行第二个方法调用,使您可以在一行中同时执行两个操作。
line[i] = line[i].replaceAll("[^a-zA-Z]", "").toLowerCase();
以上是 从Java中的String数组中删除所有非字母字符 的全部内容, 来源链接: utcz.com/qa/429152.html