【发布时间】:2013-07-14 01:06:16
【问题描述】:
我有以下代码将单词的第一个字母大写。 当我尝试将我的关键功能浓缩在一个单行中时,我发现它没有按预期工作。 这是代码;
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。 任何帮助表示赞赏?
【问题讨论】:
-
提示,通常要避免使用一个衬垫。是的,它们很紧凑,但更神秘且更难调试。您可以轻松阅读和调试的代码是好的代码。您可以在 6 个月内轻松阅读的代码甚至更好。
标签: java string replace substring uppercase