1
/** 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 方法不起作用。关于如何使它们全部小写的任何建议?

4

3 回答 3

7

重新分配word不会影响列表中包含的内容。为什么不只是toLowerCase()在添加到列表时调用?

while (input.hasNext()) {
    L.add(input.next().toLowerCase());
}
于 2013-09-24T13:38:31.213 回答
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());
}
于 2013-09-24T13:38:27.720 回答
0

怎么样

L.add(input.next().toLowerCase());
于 2013-09-24T13:38:24.820 回答