Come capitalizzare la prima lettera di parola in una stringa utilizzando Java?

Stringhe di esempio

one thousand only two hundred twenty seven 

Come posso cambiare il primo carattere di una stringa in maiuscolo e non cambiare il caso di nessuna delle altre lettere?

Dopo la modifica dovrebbe essere:

 One thousand only Two hundred Twenty Seven 

Nota: non voglio usare apache.commons.lang.WordUtils per fare questo.

Se vuoi solo scrivere in maiuscolo la prima lettera di una stringa chiamata input e lasciare il resto da solo:

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

Ora l’ output avrà quello che vuoi. Verifica che il tuo input sia lungo almeno un carattere prima di usarlo, altrimenti otterrai un’eccezione.

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

Solo … una soluzione completa, vedo che ha finito per combinare ciò che tutti hanno finito per postare = P.

Il modo più semplice è utilizzare la class org.apache.commons.lang.StringUtils

StringUtils.capitalize(Str);

Inoltre, c’è org.springframework.util.StringUtils in Spring Framework :

 StringUtils.capitalize(str); 

StringUtils.capitalize(str)

da apache commons-lang .

 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 

Ecco qua (spero che questo ti dia l’idea):

 /************************************************************************* * 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(); } } } 

Esempio utilizzando la class 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); } 

Per questo è necessario un solo semplice codice di linea. if String A = scanner.nextLine(); quindi è necessario scrivere questo per visualizzare la stringa con questa prima lettera in maiuscolo.

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

E ora è fatto.

Soluzione con StringBuilder:

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

.. in base alle risposte precedenti

Usa questo:

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

Aggiungendo tutto insieme, è una buona idea ritagliare uno spazio extra bianco all’inizio della stringa. Altrimenti, .substring (0,1) .perUpperCase proverà a scrivere in maiuscolo uno spazio bianco.

  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 

Potresti semplicemente utilizzare una funzione integrata nel pacchetto java.util:

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

Assicurati che le stringhe non siano maiuscole prima mano.