Как заглавные буквы первой буквы слова в строке с помощью Java?
пример строки
one thousand only
two hundred
twenty
seven
Как изменить первый символ строки в заглавной букве и не изменить регистр любой из других букв?
после изменения он должен быть:
One thousand only
Two hundred
Twenty
Seven
примечание: Я не хочу использовать Apache.палата общин.ленг.Слова, чтобы сделать это.
15 ответов:
если вы хотите использовать только первую букву строки с именем
inputа остальные оставьте в покое:String output = input.substring(0, 1).toUpperCase() + input.substring(1);теперь
outputбудет то, что вы хотите. Проверьте, что вашinputпо крайней мере один символ задолго до использования этого, в противном случае вы получите исключение.
public String capitalizeFirstLetter(String original) { if (original == null || original.length() == 0) { return original; } return original.substring(0, 1).toUpperCase() + original.substring(1); }просто... полное решение, я вижу, что это просто закончилось объединением того, что все остальные закончили публикацией =P.
самый простой способ-использовать
org.apache.commons.lang.StringUtilsкласс
StringUtils.capitalize(Str);
кроме того, есть
org.springframework.util.StringUtilsin Spring Framework: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; } //Today Weather Great
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(); } } }
пример использования класса 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); }
его простой только один код строки необходим для этого. если
String A = scanner.nextLine();затем вам нужно написать это, чтобы отобразить строку с этой первой буквой.
System.out.println(A.substring(0, 1).toUpperCase() + A.substring(1));и его сделали сейчас.
решение с помощью StringBuilder:
value = new StringBuilder() .append(value.substring(0, 1).toUpperCase()) .append(value.substring(1)) .toString();.. на основе предыдущих ответов
используйте этот:
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);
добавить все вместе, это хорошая идея, чтобы обрезать за лишнего пробела в начале строки. Иначе. ,функция substring(0,1).toUpperCase будет пытаться заглавными буквами пробел.
public String capitalizeFirstLetter(String original) { if (original == null || original.length() == 0) { return original; } return original.trim().substring(0, 1).toUpperCase() + original.substring(1); }
Simplest way to do is: class Test { public static void main(String[] args) { String newString=""; String test="Hii lets cheCk for BEING String"; String[] splitString = test.split(" "); for(int i=0; i<splitString.length; i++){ newString= newString+ splitString[i].substring(0,1).toUpperCase() + splitString[i].substring(1,splitString[i].length()).toLowerCase()+" "; } System.out.println("the new String is "+newString); } }
вы можете просто использовать встроенную функцию в java.пакет утиль:
>> import java.util.*; >> System.out.println(capitalize(input));убедитесь, что строки не заглавными буквами перед рукой.
Comments