5

我想得到以下输出:

你好史蒂夫安德鲁斯!

这些是我的变量:

a = "steve";
b = "Andrew"

我试过这个:

System.out.print("Hello " + a + " " + b + "s");

我不知道该放在哪里.toUpper()。应该是大写的steves我该怎么做呢?

4

4 回答 4

7

使用StringUtils.capitalize(a),

"Hello " + StringUtils.capitalize(a) + " " + b + "s"

根据 Character.toTitleCase(char) 将第一个字母更改为标题大小写的字符串大写。其他字母没有变化。

于 2012-07-09T16:10:53.473 回答
2

你可以使用StringUtils.capitalize(str),或者如果你想自己做:

public static String capitalize(String str) {
    int strLen;
    if (str == null || (strLen = str.length()) == 0) {
        return str;
    }
    return new StringBuffer(strLen)
        .append(Character.toTitleCase(str.charAt(0)))
        .append(str.substring(1))
        .toString();
}
于 2012-07-09T16:12:16.557 回答
0

您也可以尝试使用此方法:

public static String capitalize(String str) {
    str = (char) (str.charAt(0) - 32) + str.substring(1);
    return str;
}


尽管应该注意,此方法假定 str 中的第一个字符确实是小写字母。

于 2012-07-09T16:22:21.957 回答
0

最后,我尝试在没有 stringutils 的情况下做到这一点。但无论如何,感谢所有帮助过的人 :)

public class Hello
    {
      public static void main(String[] args){
        String a = "steve";
        String b = "Andrew";
        String firstletter = a.substring(0,1);
        String remainder = a.substring(1);
        String capitalized = firstletter.toUpperCase() + remainder.toLowerCase();

        System.out.print("Hello " + capitalized + " " + b + "s" );

    }
}
于 2012-07-09T16:56:53.160 回答