在java中使String成为首字母大写

截至目前,我正在使用此代码在字符串首字母中创建我的第一个字母

String output = input.substring(0, 1).toUpperCase() + input.substring(1); 

这对我来说似乎很脏..有任何直接或优雅的方式..

这个怎么样:

 String output = Character.toUpperCase(input.charAt(0)) + input.substring(1); 

如果不使用外部库,我想不出任何更干净的东西,但这肯定比你现在拥有的更好。

你应该看看Apache Commons Lang lib中的StringUtils类 – 它有方法.capitalize()

lib的描述:

根据Character.toTitleCase(char)将字符串大小写更改为标题大小写。 没有其他字母被更改。

 String out = Character.toUpperCase(inText.charAt(0)) + inText.substring(1).toLowerCase(); 
 public static void main(String[] args) { String str = null; String outStr = null; Scanner sc = new Scanner(System.in); System.out.println("Enter a String: "); str = sc.nextLine(); //c= Character.toUpperCase(str.charAt(0)); for(int i=0; i< (str.length());i++){ if(str.charAt(i)==' '){ outStr= outStr.substring(0,i+1)+str.substring(i+1,i+2).toUpperCase()+str.substring(i+2); }else if(i==0){ outStr=str.substring(0,1).toUpperCase()+str.substring(1); } } System.out.println("STRING::"+outStr); } 

假设你可以使用Java 8,这是没有人要求的function方式……

 import java.util.Optional; import java.util.stream.IntStream; public class StringHelper { public static String capitalize(String source) { return Optional.ofNullable(source) .map(str -> IntStream.concat( str.codePoints().limit(1).map(Character::toUpperCase), str.codePoints().skip(1))) .map(stream -> stream.toArray()) .map(arr -> new String(arr, 0, arr.length)) .orElse(null); } } 

它的优雅之处在于它处理null和空字符串情况而没有任何条件语句。

 Character.toString(a.charAt(0)).toUpperCase()+a.substring(1) 

PS = a是字符串。

在这里, 拿着我的啤酒

 String foo = "suresh"; String bar = foo.toUpperCase(); if(bar.charAt[0] == 'S'){ throw new SuccessException("bar contains 'SURESH' and has the first letter capital"). } 
 class strDemo3 { public static void main(String args[]) { String s1=new String(" the ghost of the arabean sea"); char c1[]=new char[30]; int c2[]=new int[30]; s1.getChars(0,28,c1,0); for(int i=0;i