Estoy usando Java para obtener una String
entrada del usuario. Estoy tratando de poner en mayúscula la primera letra de esta entrada.
Intenté esto:
String name;
BufferedReader br = new InputStreamReader(System.in);
String s1 = name.charAt(0).toUppercase());
System.out.println(s1 + name.substring(1));
que condujo a estos errores del compilador:
No coinciden los tipos: no se puede convertir de InputStreamReader a BufferedReader
No se puede invocar toUppercase () en el tipo primitivo char
java
string
capitalize
sumithra
fuente
fuente
Respuestas:
Con tu ejemplo:
fuente
StringUtils.capitalize(..)
de commons-langfuente
StringUtils.capitalize( "fred from jupiter" );
produce"Fred from jupiter"
. Fácil ...: DEl código de versión más corto / más rápido para poner en mayúscula la primera letra de una Cadena es:
el valor de
name
es"Stackoverflow"
fuente
Use la biblioteca común de Apache. Libere su cerebro de estas cosas y evite las excepciones de puntero nulo e índice fuera de límites
Paso 1:
Importe la biblioteca lang común de apache al poner esto en
build.gradle
dependenciasPaso 2:
Si está seguro de que su cadena es todo en minúsculas, o todo lo que necesita es inicializar la primera letra, llame directamente
Si desea asegurarse de que solo la primera letra esté en mayúscula, como hacer esto para un
enum
, llametoLowerCase()
primero y tenga en cuenta que arrojaráNullPointerException
si la cadena de entrada es nula.Aquí hay más muestras proporcionadas por apache. es libre de excepciones
Nota:
WordUtils
también se incluye en esta biblioteca, pero está en desuso. Por favor no use eso.fuente
How to capitalize the first letter of a String in Java?
.Java:
simplemente un método auxiliar para capitalizar cada cadena.
Después de eso simplemente llama
str = capitalize(str)
Kotlin:
fuente
str
es nulo. Compruebe que la cadena no es nula y tiene al menos un carácter antes de usar esto.Lo que quieres hacer es probablemente esto:
(convierte el primer carácter a mayúsculas y agrega el resto de la cadena original)
Además, crea un lector de flujo de entrada, pero nunca lee ninguna línea. Así
name
siempre seránull
.Esto debería funcionar:
fuente
WordUtils.capitalize(java.lang.String)
de Apache Commons .fuente
La siguiente solución funcionará.
No puede usar toUpperCase () en caracteres primitivos, pero puede hacer que la Cadena entera en mayúsculas primero tome el primer carácter y luego anexar a la subcadena como se muestra arriba.
fuente
Uso
WordUtils.capitalize(str)
.fuente
El más corto también:
Trabajó para mi.
fuente
Establezca la cadena en minúsculas, luego configure la primera letra en mayúscula de esta manera:
luego para poner en mayúscula la primera letra:
la subcadena solo está obteniendo un trozo de una cadena más grande, luego los estamos combinando nuevamente.
fuente
¿Qué pasa con WordUtils.capitalizeFully () ?
fuente
Use este método de utilidad para obtener todas las primeras letras en mayúscula.
fuente
fuente
También puedes probar esto:
Esto es mejor (optimizado) que con el uso de la subcadena. (pero no te preocupes por la cuerda pequeña)
fuente
Puedes usar
substring()
para hacer esto.Pero hay dos casos diferentes:
Caso 1
Si el uso de
String
mayúsculas está destinado a ser legible por humanos, también debe especificar la configuración regional predeterminada:Caso 2
Si el uso de
String
mayúsculas está destinado a ser legible por máquina, evite usarloLocale.getDefault()
porque la cadena que se devuelve será inconsistente en diferentes regiones y, en este caso, siempre especifique la misma configuración regional (por ejemplo,toUpperCase(Locale.ENGLISH)
). Esto asegurará que las cadenas que está utilizando para el procesamiento interno sean consistentes, lo que lo ayudará a evitar errores difíciles de encontrar.Nota: No tiene que especificar
Locale.getDefault()
paratoLowerCase()
, ya que esto se hace automáticamente.fuente
En Android Studio
Agregue esta dependencia a su
build.gradle (Module: app)
Ahora puedes usar
fuente
NOTA: Si ya tiene la dependencia de Apache Common Lang, considere usar sus StringUtils.capitalize como sugieren otras respuestas.
IMPLEMENTACIÓN: https://github.com/spring-projects/spring-framework/blob/64440a5f04a17b3728234afaa89f57766768decb/spring-core/src/main/java/org/springframework/util/StringUtils.java#L535-L55
REF: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/StringUtils.html#capitalize-java.lang.String-
fuente
FUNCIONARÁ 101%
fuente
Esto es solo para mostrarte que no estabas tan equivocado.
Nota: Esta no es la mejor manera de hacerlo. Esto es solo para mostrarle al OP que también se puede hacer usando
charAt()
. ;)fuente
Character.toString(name.charAt(0))
en lugar de""+name.charAt(0)
para mostrar lo que realmente quiero hacer.Esto funcionará
fuente
Puedes usar el siguiente código:
fuente
prueba este
Lo que hace este método es que, considere la palabra "hola mundo", este método lo convierte en "Hola mundo", escribe con mayúscula el principio de cada palabra.
fuente
Las respuestas dadas son para poner en mayúscula la primera letra de una sola palabra. use el siguiente código para capitalizar una cadena completa.
salida:
This Is A Random String
fuente
Si Input es UpperCase, entonces use lo siguiente:
str.substring (0, 1) .toUpperCase () + str.substring (1) .toLowerCase ();
Si Input es LowerCase, entonces use lo siguiente:
str.substring (0, 1) .toUpperCase () + str.substring (1);
fuente
Echa un vistazo a ACL WordUtils.
WordUtils.capitalize ("your string") == "Your String"
¿Cómo poner en mayúscula cada primera letra de una cadena?
fuente
fuente
Puedes usar el siguiente código:
ejemplo de prueba con JUnit:
fuente
Usar
commons.lang.StringUtils
la mejor respuesta es:Me parece brillante ya que envuelve la cadena con un StringBuffer. Puede manipular el StringBuffer como lo desee y utilizando la misma instancia.
fuente
Otro ejemplo más, cómo puede poner en mayúscula la primera letra de la entrada del usuario:
fuente