2011-02-28 22 views
5

En php, el método ucwords convierte cualquier cadena en una cadena donde cada primer carácter de las palabras está en mayúscula y todos los demás caracteres están en minúsculas.¿Hay un equivalente de ucwords en java

Siempre termino haciendo mi propia implementación, y me pregunto si existe un método estándar.

+2

http://stackoverflow.com/questions/1149855/how-to-upper-case-every-first-letter-of-word- dentro de una cadena –

+0

@Jarrod - el enlace está roto. Apache StringUtils sigue el algoritmo de WordUtils. Como se menciona en JavaDoc – Nishant

+0

@Nishant: el enlace funciona para mí ... – posdef

Respuesta

8

Eso se llama capitalización. Utilice StringUtils de Apache Commons para hacer that.

Ver más aquí:

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

WordUtils es también vale la pena mirar. Ver here

+0

Ok gracias por el enlace. Sin embargo, no podré usarlo demasiado, ya que estoy trabajando en Android (que no incluye la biblioteca Apache org.apache.commons.lang). – XGouchet

+0

@XGouchet Eso es raro. ** Puedes ** usar jar externo en el proyecto de Android. mira aquí http://stackoverflow.com/questions/1334802/how-can-i-use-external-jars-in-an-android-project – Nishant

+0

@XGouchet por favor escribe tu pregunta como android – Nishant

5

De lo contrario, es una solución bastante simple, como; String string1 = someString.substring(0,1).toUpperCase() + someString.substring(1);

Puede ponerlo en una función y llamarlo cuando lo necesite. Le ahorra la molestia de mantener bibliotecas que no necesita. (No es que los comunes Apache es siempre problemas, pero usted consigue el punto ..)

EDIT: someString.substring(1) parte se puede escribir como someString.substring(1).toLowerCase() sólo para asegurarse de que el resto de la cadena está en minúsculas

2

I don' t sabe acerca de cualquier equivalente directo, pero siempre se puede escribir uno:

public static String capitalize(String input) { 
    if (input == null || input.length() <= 0) { 
    return input; 
    } 
    char[] chars = new char[1]; 
    input.getChars(0, 1, chars, 0); 
    if (Character.isUpperCase(chars[0])) { 
    return input; 
    } else { 
    StringBuilder buffer = new StringBuilder(input.length()); 
    buffer.append(Character.toUpperCase(chars[0])); 
    buffer.append(input.toCharArray(), 1, input.length()-1); 
    return buffer.toString(); 
    } 
} 
Cuestiones relacionadas