这是我的代码:
public void storeWords(String sentence)
{
String[] wordlist = sentence.split("\\s+");
int stringLength = wordlist.length;
for(int j = 0; j < stringLength; j++)
{
wordlist[j].replaceAll("[^a-zA-Z ]", "");
System.out.println(wordlist[j]);
}
}
所以for循环现在只是检查每个单词是否替换了标点符号。没有。我还简单地检查过它&#34; sentence.replaceAll(.....)&#34;仍然没有工作。关于我出错的地方的任何线索?
"If somebody falls and has no protection, do they get hurt?"
返回
"If"
"somebody"
"falls"
"and"
"has"`
"no"
"protection, "
"do"
"they"
"get"
"hurt?"
答案 0 :(得分:4)
字符串是不可变的,你必须这样做:
wordlist[j] = wordlist[j].replaceAll("[^a-zA-Z ]", "");
(immutable意味着一旦分配就无法更改它们,因此您需要进行新的赋值以更改String的值)
答案 1 :(得分:3)
当我将其更改为此时,您没有指定replaceAll()的结果 -
wordlist[j] = wordlist[j].replaceAll("[^a-zA-Z ]", "");
我得到输出(带输入)
If
somebody
falls
and
has
no
protection
do
they
get
hurt
注意来自Javadoc的返回是“结果字符串”。