/** Read the sequence of words on INPUT, and return as a List. If LINKED,
* use a linked representation. Otherwise, use an array representation.
*/
static List<String> readList(Scanner input, boolean linked) {
List<String> L;
if (linked) {
L = new LinkedList<String>();
} else {
L = new ArrayList<String>();
}
while (input.hasNext()) {
L.add(input.next());
}
for (String word : L) {
word = word.toLowerCase();
}
return L;
}
这是我从文本文件中读取单词并将其作为列表返回的代码。但是,我想让文件中的所有单词小写,但toLowerCase方法不起作用。关于如何使它们全部小写的任何建议?
答案 0 :(得分:7)
重新分配word
将不会影响列表中包含的内容。为什么不在添加到列表时调用toLowerCase()
?
while (input.hasNext()) {
L.add(input.next().toLowerCase());
}
答案 1 :(得分:2)
字符串是不可变的。您需要在列表中替换它们。
for (int i = 0; i < L.length(); ++i) {
L.set(i, L.get(i).toLowerCase();
}
或者,您可以在添加到列表时执行toLowerCase()
。
while (input.hasNext()) {
L.add(input.next().toLowerCase());
}
答案 2 :(得分:0)
怎么样
L.add(input.next().toLowerCase());
答案 3 :(得分:0)
java.lang.String
是不可变的。 word.toLowerCase()
方法返回新的String,不包含在列表中。
使用此代码:
1 while (input.hasNext()) {
2 L.add(input.next().toLowerCase());
3 }