public static String capitalise(String str)
{
if (str != null || !"".equals(str))
{
char chr=str.charAt(0);
String check= Character.toString(chr);
String check1= check.toUpperCase();
char chr1=check1.charAt(0);
str=str.replace(chr, chr1);
return str;
}
else
{
System.out.println("Not a valid String");
}
return str;
}
我想只对第一个字符进行大写,但它会将第一个字符大写,例如在upeercase string = shashank成为ShaShank之后...我该怎么办呢。
答案 0 :(得分:2)
str.replace(chr, chr1);
替换该字符串中char的所有出现。它会将您的所有s
更改为S
。
用户substring
将大写的第一个char与字符串的其余部分连接起来。
以下是评论中附加问题的简单解决方案。它将在单个(!)空格后大写每个字符。您可能希望增强它以允许多个空格或一般多个白名单。
public static void main(final String[] args) {
String s = "some words";
StringBuilder result = new StringBuilder();
boolean capitalizeNextLetter = true;
for (char c : s.toCharArray()) {
if (capitalizeNextLetter) {
result.append(Character.toUpperCase(c));
capitalizeNextLetter = false;
} else {
if (c == ' ') {
capitalizeNextLetter = true;
}
result.append(c);
}
}
System.out.println(result.toString());
}
答案 1 :(得分:1)
如下:
public static String capitalize(String str) {
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
答案 2 :(得分:1)
为什么不简单地执行以下操作
str= Character.toUpperCase(str.charAt(0)) + str.substring(1)
答案 3 :(得分:1)
试试这个
public static String capitalise(String str)
{
if (str != null || !"".equals(str))
{
char chr = str.charAt(0);
String capsString = Character.toString(chr).toUpperCase() + str.substring(1);
return capsString;
}
else
{
System.out.println("Not a valid String");
}
return str;
}
答案 4 :(得分:0)
您可以使用以下内容。
char chr1=check1.charAt(0);
str = chr1 + str.substring(1);
答案 5 :(得分:0)
使用 ReplaceFirst 方法。
str=str.replaceFirst(check, chreck1);
此外,您应将if
条件更改为以下内容:
if (str != null && !"".equals(str))
这样就不会处理空字符串了。
答案 6 :(得分:0)
试试这个。只需换一行。
public static String capitalise(String str)
{
if (str != null || !"".equals(str))
{
char chr=str.charAt(0);
String check= Character.toString(chr);
String check1= check.toUpperCase();
str=check1+str.substring(1);
return str;
}
else
{
System.out.println("Not a valid String");
}
return str;
}
答案 7 :(得分:0)
在您的代码中,替换方法会将所有's'
替换为'S'
因为char包含's'
;
试试这个答案
public static String capitalise(String str)
{
String test = str.substring(0,1);
test=test.toUpperCase();
System.out.println(test);
String new1= test+str.substring(1,str.length());
return new1;
}