2012-10-30 63 views
-5

可能重复:
String replace method is not working大写第一个字符的字符串

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之前谈到的如它大写第一个字符字符串= Shashank在它变成ShaShank之后...我该怎么做。

+0

@Jan - 问题不重复,但是,你是对的,他得到了已经这个问题在这里的答案。 –

回答

2

str.replace(chr, chr1);替换全部发生该字符串中的字符。它会将您所有的s更改为S

用户substring将大写第一个字符与字符串的其余部分连接起来。


下面是对您的评论中的其他问题的简单解决方案。它将在单个(!)空间后面大写每个字符。一般来说,您可能想要增强它以允许多个空格或多个白色字符。

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()); 

} 
+0

BUt我怎么大写第二个字符串的第一个字符i,如果我写了dhawal jain,然后大写就会变成这个Dhawal Jain。 – Shashank

1

如何像:

public static String capitalize(String str) { 
    return str.substring(0, 1).toUpperCase() + str.substring(1); 
} 
0

您可以使用下面。

char chr1=check1.charAt(0); 
str = chr1 + str.substring(1); 
1

为什么不干脆以下

str= Character.toUpperCase(str.charAt(0)) + str.substring(1) 
0

使用ReplaceFirst方法。

str=str.replaceFirst(check, chreck1); 

replaceFirst

此外,你应该改变你的if条件如下:

if (str != null && !"".equals(str)) 

这样空字符串将不会被处理。

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; 
} 
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; 
} 
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;  
} 
相关问题