我有以下代码将单词的第一个字母大写。当我尝试将我的关键功能浓缩在一个单行中时,我发现它没有按预期工作。这是代码;
import java.util.*;
public class CapitalizeName {
public static void main(String[] args) {
String name="My naMe is ALex";
String words="";
String[] names=name.split(" ");
for (String w: names) {
w=w.toUpperCase(); //line 8
w=w.replace(w.substring(1), w.substring(1).toLowerCase()); //line 9
//this single liner doesnot work:
//w=w.toUpperCase().replace(w.substring(1), w.substring(1).toLowerCase());
words+=w+" ";
}
System.out.println(words.trim());
}
}
输出是:
我的名字叫亚历克斯
当我注释掉第 8 行和第 9 行并取消注释第 9 行时,我得到以下意外输出:MY NAME IS ALEX。任何帮助表示赞赏?