英文:
Why won't toLowerCase convert the string element as lowercase?
问题
为什么这不会将字符串元素转换为小写?
给定字符串输入,转换为字符串数组。我希望每个单词都是小写的。然而,当我调试时,我注意到数组中的元素仍然在不同的大小写情况下变化。
String[] words = paragraph.split(" "); //[how, to, do, in, java]
for(String word : words){
word = word.toLowerCase();
}
英文:
Why won't this convert the string element as lowercase?
Given string input, converted into a string array. I want each word to be lowercase. However, when I debug, I notice the elements in my array are still varying in cases.
String[] words = paragraph.split(" "); //[how, to, do, in, java]
for(String word : words){
word = word.toLowerCase();
}
答案1
得分: 2
因为通过执行toLowerCase()
,你正在实例化一个新的String
。所以你的word
变量不再是对数组项的引用。
要么将toLowerCase()
的结果添加到一个新数组中,要么使用索引进行循环:
for (i = 0; i < words.size(); i++) {
words[i] = words[i].toLowerCase();
}
英文:
Because by doing toLowerCase()
, you are instantiating a new String
. So your word
variable is no more a reference to an item of your array.
Either you add the result of the toLowerCase()
to a new array or you loop with index :
for(i = 0;i < words.size();i++) {
words[i] = words[i].toLowerCase();
}
答案2
得分: 2
toLowerCase
将返回一个new
对象,你必须将它存储。
你可以使用Java 8在一行中实现:
Arrays.setAll(words, i -> words[i].toLowerCase());
英文:
toLowerCase
will return a new
object, you have to store it.
You can use Java 8 to achieve it in one line:
Arrays.setAll(words, i -> words[i].toLowerCase());
答案3
得分: 1
你没有修改你的数组,而是将小写字符串赋值给了单词实例
你可以使用经典的for循环,将小写值赋值给数组的当前索引
例如,你的for循环应该如下所示:
for (int i = 0; i < words.length; i++) {
words[i] = words[i].toLowerCase();
System.out.println(words[i]);
}
英文:
You are not modifying your array instead you are assigning the lowercase string to the word instance
You can use the classic for loop and assign the lowercase value to the current index of the array
for en example, your for loop should look like
for(int i=0;i< words.length;i++){
words[i] = words[i].toLowerCase();
System.out.println(words[i]);
}
答案4
得分: 0
字符串对象默认是不可变的。当您将某个内容重新赋值给字符串时,它会创建一个新的对象,因此数组中单词的原始字符串对象保持不变。
英文:
String objects are immutable by default. When you reassign something to string it creates a new object, hence the original String object in words array remain the same.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论