我想获得以下输出:
你好史蒂夫安德鲁斯!
这些是我的变量:
a = "steve";
b = "Andrew"
我试过了:
System.out.print("Hello " + a + " " + b + "s");
我不知道.toUpper()
放在steve
的哪个位置。 s
应为大写。我该怎么做?
答案 0 :(得分:7)
"Hello " + StringUtils.capitalize(a) + " " + b + "s"
根据Character.toTitleCase(char)大写字符串,将第一个字母更改为标题大小写。没有其他字母被更改。
答案 1 :(得分: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();
}
答案 2 :(得分:0)
您也可以尝试使用此方法:
public static String capitalize(String str) {
str = (char) (str.charAt(0) - 32) + str.substring(1);
return str;
}
public static String capitalize(String str) {
str = (char) (str.charAt(0) - 32) + str.substring(1);
return str;
}
虽然应该注意这个方法假设str中的第一个字符确实是一个小写字母。
答案 3 :(得分: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" );
}
}