Estou usando Java para obter uma String
entrada do usuário. Estou tentando fazer a primeira letra desta entrada em maiúscula.
Eu tentei isso:
String name;
BufferedReader br = new InputStreamReader(System.in);
String s1 = name.charAt(0).toUppercase());
System.out.println(s1 + name.substring(1));
o que levou a esses erros do compilador:
Incompatibilidade de tipo: não é possível converter de InputStreamReader em BufferedReader
Não é possível chamar toUppercase () no tipo primitivo char
java
string
capitalize
sumithra
fonte
fonte
Respostas:
Com o seu exemplo:
fonte
StringUtils.capitalize(..)
de commons-langfonte
StringUtils.capitalize( "fred from jupiter" );
produz"Fred from jupiter"
. Fácil ...: DO código da versão mais curta / mais rápida para colocar em maiúscula a primeira letra de uma String é:
o valor de
name
é"Stackoverflow"
fonte
Use a biblioteca comum do Apache. Liberte seu cérebro desses materiais e evite o ponteiro nulo e o índice fora de exceções limitadas
Passo 1:
Importe a biblioteca lang comum do apache colocando isso em
build.gradle
dependênciasPasso 2:
Se você tiver certeza de que sua string é minúscula ou tudo o que precisa é inicializar a primeira letra, ligue diretamente para
Se você deseja certificar-se de que apenas a primeira letra seja maiúscula, como fazer isso para um
enum
, chametoLowerCase()
primeiro e lembre-se de que ele será geradoNullPointerException
se a sequência de entrada for nula.Aqui estão mais amostras fornecidas pelo apache. é livre de exceções
Nota:
WordUtils
também está incluído nesta biblioteca, mas está obsoleto. Por favor , não use isso.fonte
How to capitalize the first letter of a String in Java?
.Java:
simplesmente um método auxiliar para capitalizar cada string.
Depois disso, basta ligar
str = capitalize(str)
Kotlin:
fonte
str
for nulo. Verifique se a sequência não é nula e possui pelo menos um caractere antes de usá-lo.O que você quer fazer é provavelmente o seguinte:
(converte o primeiro caractere em maiúsculas e adiciona o restante da string original)
Além disso, você cria um leitor de fluxo de entrada, mas nunca lê nenhuma linha. Assim
name
sempre seránull
.Isso deve funcionar:
fonte
WordUtils.capitalize(java.lang.String)
do Apache Commons .fonte
A solução abaixo funcionará.
Você não pode usar toUpperCase () em caracteres primitivos, mas pode fazer String inteira em maiúsculas primeiro e depois pegar o primeiro caractere e depois anexá-lo à substring, como mostrado acima.
fonte
Use
WordUtils.capitalize(str)
.fonte
Mais curto também:
Trabalhou para mim.
fonte
Defina a string como minúscula e, em seguida, defina a primeira letra como maiúscula:
depois colocar em maiúscula a primeira letra:
substring está apenas obtendo um pedaço de uma string maior, então estamos combinando-os novamente.
fonte
E o WordUtils.capitalizeFully () ?
fonte
Use este método utilitário para obter todas as primeiras letras maiúsculas.
fonte
fonte
Você também pode tentar o seguinte:
Isso é melhor (otimizado) do que com o uso de substring. (mas não se preocupe com pequenas cordas)
fonte
Você pode usar
substring()
para fazer isso.Mas existem dois casos diferentes:
Caso 1
Se o que
String
você está colocando em maiúsculas pretende ser legível por humanos, você também deve especificar o código do idioma padrão:Caso 2
Se o que
String
você está usando maiúsculas for legível por máquina, evite usá-loLocale.getDefault()
porque a sequência retornada será inconsistente em diferentes regiões e, nesse caso, sempre especifique o mesmo código do idioma (por exemplo,toUpperCase(Locale.ENGLISH)
). Isso garantirá que as strings que você está usando para o processamento interno sejam consistentes, o que ajudará a evitar erros difíceis de encontrar.Nota: Você não precisa especificar
Locale.getDefault()
paratoLowerCase()
, pois isso é feito automaticamente.fonte
No Android Studio
Adicione essa dependência ao seu
build.gradle (Module: app)
Agora você pode usar
fonte
NOTA: Se você já possui dependência do Apache Common Lang, considere usar o StringUtils.capitalize, conforme sugerem outras respostas.
IMPLEMENTAÇÃO: https://github.com/spring-projects/spring-framework/blob/64440a5f04a17b3728234afaa89f57766768decb/spring-core/src/main/java/org/springframework/util/StringUtils.java#L5
REF: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/StringUtils.html#capitalize-java.lang.String-
fonte
VAI TRABALHAR 101%
fonte
Isso é apenas para mostrar que você não estava errado.
Nota: Essa não é a melhor maneira de fazê-lo. Isso é apenas para mostrar ao OP que isso pode ser feito usando
charAt()
também. ;)fonte
Character.toString(name.charAt(0))
vez de""+name.charAt(0)
mostrar o que realmente quero fazer.Isso vai funcionar
fonte
Você pode usar o seguinte código:
fonte
tente este
O que esse método faz é que, considere a palavra "olá mundo", esse método a transforme em "olá mundo", com maiúsculas no início de cada palavra.
fonte
As respostas dadas são para colocar em maiúscula apenas a primeira letra de uma palavra. use o código a seguir para colocar em maiúscula uma seqüência inteira.
resultado :
This Is A Random String
fonte
Se Input for UpperCase, use o seguinte:
str.substring (0, 1) .toUpperCase () + str.substring (1) .toLowerCase ();
Se Entrada for LowerCase, use o seguinte:
str.substring (0, 1) .toUpperCase () + str.substring (1);
fonte
Dê uma olhada no ACL WordUtils.
WordUtils.capitalize ("sua string") == "Sua String"
Como maiúscula toda primeira letra da palavra em uma string?
fonte
fonte
Você pode usar o seguinte código:
exemplo de teste com JUnit:
fonte
Usando
commons.lang.StringUtils
a melhor resposta é:Acho isso brilhante, pois envolve a string com um StringBuffer. Você pode manipular o StringBuffer como desejar e usando a mesma instância.
fonte
Ainda outro exemplo, como você pode colocar a primeira letra da entrada do usuário em maiúscula:
fonte