如何使用java大写string的第一个字母?

可能重复:
在stringJava中利用每个单词的首字母大写

示例string

one thousand only two hundred twenty seven 

如何更改大写字母的string的第一个字符,而不是更改任何其他字母的情况。 改变后应该是

 One thousand only Two hundred Twenty Seven 

注意:我不想使用apache.commons.lang.WordUtils来做到这一点。

如果你只想大写一个名为input的string的第一个字母,而只剩下其余的字母:

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

现在output将有你想要的。 在使用之前检查你的input是否至less有一个字符,否则你会得到一个exception。

 public String capitalizeFirstLetter(String original) { if (original == null || original.length() == 0) { return original; } return original.substring(0, 1).toUpperCase() + original.substring(1); } 

只是…一个完整的解决scheme,我看到它只是结合了其他人最终发布= P的结果。

最简单的方法是使用org.apache.commons.lang.StringUtils

StringUtils.capitalize(Str);

另外, Spring Framework中还有org.springframework.util.StringUtils

 StringUtils.capitalize(str); 
 String sentence = "ToDAY WeAthEr GREat"; public static String upperCaseWords(String sentence) { String words[] = sentence.replaceAll("\\s+", " ").trim().split(" "); String newSentence = ""; for (String word : words) { for (int i = 0; i < word.length(); i++) newSentence = newSentence + ((i == 0) ? word.substring(i, i + 1).toUpperCase(): (i != word.length() - 1) ? word.substring(i, i + 1).toLowerCase() : word.substring(i, i + 1).toLowerCase().toLowerCase() + " "); } return newSentence.trim(); } 

//今天天气很好

 String s=t.getText().trim(); int l=s.length(); char c=Character.toUpperCase(s.charAt(0)); s=c+s.substring(1); for(int i=1; i<l; i++) { if(s.charAt(i)==' ') { c=Character.toUpperCase(s.charAt(i+1)); s=s.substring(0, i) + c + s.substring(i+2); } } t.setText(s); 

这里你去(希望这给你的想法):

 /************************************************************************* * Compilation: javac Capitalize.java * Execution: java Capitalize < input.txt * * Read in a sequence of words from standard input and capitalize each * one (make first letter uppercase; make rest lowercase). * * % java Capitalize * now is the time for all good * Now Is The Time For All Good * to be or not to be that is the question * To Be Or Not To Be That Is The Question * * Remark: replace sequence of whitespace with a single space. * *************************************************************************/ public class Capitalize { public static String capitalize(String s) { if (s.length() == 0) return s; return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); } public static void main(String[] args) { while (!StdIn.isEmpty()) { String line = StdIn.readLine(); String[] words = line.split("\\s"); for (String s : words) { StdOut.print(capitalize(s) + " "); } StdOut.println(); } } } 

StringUtils.capitalize(str)

来自apache commons-lang 。

使用StringTokenizer类的示例:

 String st = " hello all students"; String st1; char f; String fs=""; StringTokenizer a= new StringTokenizer(st); while(a.hasMoreTokens()){ st1=a.nextToken(); f=Character.toUpperCase(st1.charAt(0)); fs+=f+ st1.substring(1); System.out.println(fs); } 

您可以简单地在java.util包中使用内置函数:

 >> import java.util.*; >> System.out.println(capitalize(input)); 

确保string不是事先大写的。

有点晚了,但这个怎么样?

 char[] chars = {Character.toUpperCase(A.charAt(0)), Character.toUpperCase(B.charAt(0))}; String a1 = chars[0] + A.substring(1); String b1 = chars[1] + B.substring(1); 

用StringBuilder解决scheme:

 value = new StringBuilder() .append(value.substring(0, 1).toUpperCase()) .append(value.substring(1)) .toString(); 

..根据以前的答案

它只需要简单的一行代码就可以了。 如果String A = scanner.nextLine(); 那么你需要写这个来显示第一个字母大写的string。

System.out.println(A.substring(0, 1).toUpperCase() + A.substring(1));

现在完成了。