Make String first letter capital in java
到目前为止,我用这段代码把我的第一个字母写成一个大写的字符串。
1 |
我觉得这很脏……有没有直接或优雅的方法……
这个怎么样:
如果不使用外部库,我想不出任何更干净的东西,但是这肯定比您现在拥有的要好。
您应该看看ApacheCommonsLangLib中的
库中的描述:
Capitalizes a String changing the first letter to title case as per
Character.toTitleCase(char). No other letters are changed.
号
。
给,拿着我的啤酒
1 2 3 4 5 |
。
1 |
。
P.S=A是字符串。
假设您可以使用Java 8,这里是没有人要求的功能性方式…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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); } } |
它很优雅,因为它不使用任何条件语句来处理空字符串和空字符串。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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); } |
号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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<s1.length();i++) { System.out.print(c1[i]); } for(int i=1;i<s1.length();i++) { c2[i]=c1[i]; if(c1[i-1]==' ') { c2[i]=c2[i]-32; } c1[i]=(char)c2[i]; } for(int i=0;i<s1.length();i++) { System.out.print(c1[i]); } } } |