validar regular primera palabra minusculas mayusculas mayuscula letra expresion convertir cada java string

java - regular - ¿Cómo mayúsculas en cada primera letra de una cadena?



primera letra de cada palabra en mayuscula sql (16)

Aquí está el código

String source = "hello good old world"; StringBuffer res = new StringBuffer(); String[] strArr = source.split(" "); for (String str : strArr) { char[] stringArray = str.trim().toCharArray(); stringArray[0] = Character.toUpperCase(stringArray[0]); str = new String(stringArray); res.append(str).append(" "); } System.out.print("Result: " + res.toString().trim());

Posible duplicado:
Capitalice el primer carácter de cada palabra en una cadena Java

Tengo una cadena: "hola viejo mundo" y quiero mayúsculas en cada primera letra de cada palabra, no toda la cadena con .toUpperCase (). ¿Hay un asistente de java existente que hace el trabajo?


Aquí hay una solución fácil:

public class CapitalFirstLetters { public static void main(String[] args) { String word = "it''s java, baby!"; String[] wordSplit; String wordCapital = ""; wordSplit = word.split(" "); for (int i = 0; i < wordSplit.length; i++) { wordCapital = wordSplit[i].substring(0, 1).toUpperCase() + wordSplit[i].substring(1) + " "; } System.out.println(wordCapital); }}


Aquí hay una solución muy simple y compacta. str contiene la variable de lo que quieras que haga la mayúscula activada.

StringBuilder b = new StringBuilder(str); int i = 0; do { b.replace(i, i + 1, b.substring(i,i + 1).toUpperCase()); i = b.indexOf(" ", i) + 1; } while (i > 0 && i < b.length()); System.out.println(b.toString());

Lo mejor es trabajar con StringBuilder porque String es inmutable y es ineficiente generar nuevas cadenas para cada palabra.


Eche un vistazo a ACL WordUtils .

WordUtils.capitalize("your string") == "Your String"


Mi código después de leer algunas respuestas anteriores.

/** * Returns the given underscored_word_group as a Human Readable Word Group. * (Underscores are replaced by spaces and capitalized following words.) * * @param pWord * String to be made more readable * @return Human-readable string */ public static String humanize2(String pWord) { StringBuilder sb = new StringBuilder(); String[] words = pWord.replaceAll("_", " ").split("//s"); for (int i = 0; i < words.length; i++) { if (i > 0) sb.append(" "); if (words[i].length() > 0) { sb.append(Character.toUpperCase(words[i].charAt(0))); if (words[i].length() > 1) { sb.append(words[i].substring(1)); } } } return sb.toString(); }


Mucho más simple con regexes:

Pattern spaces=Pattern.compile("//s+[a-z]"); Matcher m=spaces.matcher(word); StringBuilder capitalWordBuilder=new StringBuilder(word.substring(0,1).toUpperCase()); int prevStart=1; while(m.find()) { capitalWordBuilder.append(word.substring(prevStart,m.end()-1)); capitalWordBuilder.append(word.substring(m.end()-1,m.end()).toUpperCase()); prevStart=m.end(); } capitalWordBuilder.append(word.substring(prevStart,word.length()));

Salida para entrada: "esta oración tiene tapas extrañas"

Esta oración tiene gorras extrañas


No sé si hay una función, pero esto haría el trabajo en caso de que no exista una:

String s = "here are a bunch of words"; final StringBuilder result = new StringBuilder(s.length()); String[] words = s.split("//s"); for(int i=0,l=words.length;i<l;++i) { if(i>0) result.append(" "); result.append(Character.toUpperCase(words[i].charAt(0))) .append(words[i].substring(1)); }


También puede echar un vistazo a la biblioteca de StringUtils . Tiene un montón de cosas interesantes.


Tratando de ser más eficiente en cuanto a la memoria que dividir la cadena en múltiples cadenas y usar la estrategia mostrada por Darshana Sri Lanka. Además, maneja todo el espacio en blanco entre las palabras, no solo el carácter "".

public static String UppercaseFirstLetters(String str) { boolean prevWasWhiteSp = true; char[] chars = str.toCharArray(); for (int i = 0; i < chars.length; i++) { if (Character.isLetter(chars[i])) { if (prevWasWhiteSp) { chars[i] = Character.toUpperCase(chars[i]); } prevWasWhiteSp = false; } else { prevWasWhiteSp = Character.isWhitespace(chars[i]); } } return new String(chars); }


String s = "java is an object oriented programming language."; final StringBuilder result = new StringBuilder(s.length()); String words[] = s.split("// "); // space found then split it for (int i = 0; i < words.length; i++) { if (i > 0){ result.append(" "); } result.append(Character.toUpperCase(words[i].charAt(0))).append( words[i].substring(1)); } System.out.println(result);

Salida: Java es un lenguaje de programación orientado a objetos.


import java.util.Scanner; public class CapitolizeOneString { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print(" Please enter Your word = "); String str=scan.nextLine(); printCapitalized( str ); } // end main() static void printCapitalized( String str ) { // Print a copy of str to standard output, with the // first letter of each word in upper case. char ch; // One of the characters in str. char prevCh; // The character that comes before ch in the string. int i; // A position in str, from 0 to str.length()-1. prevCh = ''.''; // Prime the loop with any non-letter character. for ( i = 0; i < str.length(); i++ ) { ch = str.charAt(i); if ( Character.isLetter(ch) && ! Character.isLetter(prevCh) ) System.out.print( Character.toUpperCase(ch) ); else System.out.print( ch ); prevCh = ch; // prevCh for next iteration is ch. } System.out.println(); } } // end class


import org.apache.commons.lang.WordUtils; public class CapitalizeFirstLetterInString { public static void main(String[] args) { // only the first letter of each word is capitalized. String wordStr = WordUtils.capitalize("this is first WORD capital test."); //Capitalize method capitalizes only first character of a String System.out.println("wordStr= " + wordStr); wordStr = WordUtils.capitalizeFully("this is first WORD capital test."); // This method capitalizes first character of a String and make rest of the characters lowercase System.out.println("wordStr = " + wordStr ); } }

Salida:

Esta es la primera prueba de capital WORD.

Esta es la primera prueba de capital de Word.


package com.raj.samplestring; /** * @author gnagara */ public class SampleString { /** * @param args */ public static void main(String[] args) { String[] stringArray; String givenString = "ramu is Arr Good boy"; stringArray = givenString.split(" "); for(int i=0; i<stringArray.length;i++){ if(!Character.isUpperCase(stringArray[i].charAt(0))){ Character c = stringArray[i].charAt(0); Character change = Character.toUpperCase(c); StringBuffer ss = new StringBuffer(stringArray[i]); ss.insert(0, change); ss.deleteCharAt(1); stringArray[i]= ss.toString(); } } for(String e:stringArray){ System.out.println(e); } } }


public String UpperCaseWords(String line) { line = line.trim().toLowerCase(); String data[] = line.split("//s"); line = ""; for(int i =0;i< data.length;i++) { if(data[i].length()>1) line = line + data[i].substring(0,1).toUpperCase()+data[i].substring(1)+" "; else line = line + data[i].toUpperCase(); } return line.trim(); }


public class WordChangeInCapital{ public static void main(String[] args) { String s="this is string example"; System.out.println(s); //this is input data. //this example for a string where each word must be started in capital letter StringBuffer sb=new StringBuffer(s); int i=0; do{ b.replace(i,i+1,sb.substring(i,i+1).toUpperCase()); i=b.indexOf(" ",i)+1; } while(i>0 && i<sb.length()); System.out.println(sb.length()); } }


sString = sString.toLowerCase(); sString = Character.toString(sString.charAt(0)).toUpperCase()+sString.substring(1);