Cadenas de ejemplo
one thousand only
two hundred
twenty
seven
¿Cómo cambio el primer carácter de una cadena en mayúscula y no cambio el caso de ninguna de las otras letras?
Después del cambio debería ser:
One thousand only
Two hundred
Twenty
Seven
Nota: No quiero usar apache.commons.lang.WordUtils para hacer esto.
Respuestas:
Si solo desea poner en mayúscula la primera letra de una cadena llamada
input
y dejar el resto solo:Ahora
output
tendrás lo que quieres. Comprueba que tienesinput
al menos un personaje mucho antes de usar esto, de lo contrario obtendrás una excepción.fuente
Simplemente ... una solución completa, veo que terminó combinando lo que todos los demás publicaron = P.
fuente
return original.length() == 0 ? original : original.substring(0, 1).toUpperCase() + original.substring(1);
if length() == 0
¿no podemos decir con seguridad que es así""
y devolver eso en lugar deoriginal
? Nos ahorra algunos personajes de una sola línea. Pregunto porque siento que Java es un lenguaje tan lleno de gotcha que, sinceramente, no me sorprendería si hubiera otra forma de tener una cadena de longitud cero.String.toUpperCase(Locale)
para una cadena arbitraria, porque la configuración regional debe coincidir con el texto. Sí, debería usarse, pero no siempre está claro cuálLocale
usar ...La forma más simple es usar la
org.apache.commons.lang.StringUtils
claseStringUtils.capitalize(Str);
fuente
capitalize
?Además, hay
org.springframework.util.StringUtils
en Spring Framework :fuente
StringUtils.capitalize(str)
de apache commons-lang .
fuente
fuente
fuente
Aquí tienes (espero que esto te de la idea):
fuente
StdIn
yStdOut
no es muy Java-y. :-)Para esto solo se necesita un código de línea simple. si
String A = scanner.nextLine();
entonces necesita escribir esto para mostrar la cadena con esta primera letra en mayúscula.System.out.println(A.substring(0, 1).toUpperCase() + A.substring(1));
Y ya está hecho.
fuente
Ejemplo usando la clase StringTokenizer:
fuente
Solución con StringBuilder:
.. basado en respuestas anteriores
fuente
Sumando todo, es una buena idea recortar el espacio en blanco adicional al comienzo de la secuencia. De lo contrario, .substring (0,1) .toUpperCase intentará capitalizar un espacio en blanco.
fuente
Mi enfoque funcional. capstiliza el primer carácter de la oración después del espacio en blanco en todo el párrafo.
Para habilitar solo el primer carácter de la palabra, simplemente elimine .split ("")
fuente
Actualización de julio de 2019
Actualmente, la función de biblioteca más actualizada para hacer esto está contenida en
org.apache.commons.lang3.StringUtils
Si está utilizando Maven, importe la dependencia en su pom.xml:
fuente
Incluso para el código "simple", usaría bibliotecas. El problema no es el código per se, sino los casos de prueba ya existentes que cubren casos excepcionales. Esto podría ser
null
, cadenas vacías, cadenas en otros idiomas.La parte de manipulación de palabras se ha eliminado de Apache Commons Lang. Ahora se coloca en el texto de Apache Commons . Consíguelo a través de https://search.maven.org/artifact/org.apache.commons/commons-text .
Puede usar WordUtils.capitalize (String str) de Apache Commons Text. Es más poderoso de lo que pediste. También puede capitalizar fulle (p. Ej., Fijación
"oNe tousand only"
).Como funciona en texto completo, uno tiene que decirle que capitalice solo la primera palabra.
Clase JUnit completa para permitir jugar con la funcionalidad:
fuente
si solo quiere poner en mayúscula la primera letra, se puede usar el siguiente código
fuente
En realidad, obtendrá el mejor rendimiento si evita el
+
operador y el usoconcat()
en este caso. Es la mejor opción para fusionar solo 2 cadenas (aunque no es tan bueno para muchas cadenas). En ese caso, el código se vería así:fuente
Utilizar este:
fuente
Dada la
input
cadena:fuente
Puedes probar el siguiente código:
fuente
fuente
Me gustaría agregar un cheque NULO e IndexOutOfBoundsException en la respuesta aceptada.
Código Java:
Salida:
fuente
Lo siguiente le dará la misma salida consistente independientemente del valor de su inputString:
fuente
1. Usando el
substring()
método de StringAhora solo llame al
capitalize()
método para convertir la primera letra de una cadena a mayúsculas:2. Apache Commons Lang
La
StringUtils
clase de Commons Lang proporciona elcapitalize()
método que también se puede usar para este propósito:Agregue la siguiente dependencia a su
pom.xml
archivo (solo para Maven):Aquí hay un artículo que explica estos dos enfoques en detalle.
fuente
fuente