Sequências de exemplo
one thousand only
two hundred
twenty
seven
Como altero o primeiro caractere de uma sequência em maiúscula e não altero o caso de nenhuma das outras letras?
Após a alteração, deve ser:
One thousand only
Two hundred
Twenty
Seven
Nota: Não quero usar o apache.commons.lang.WordUtils para fazer isso.
Respostas:
Se você deseja apenas colocar em maiúscula a primeira letra de uma sequência nomeada
input
e deixar o resto em paz:Agora
output
terá o que você quer. Verifique se vocêinput
tem pelo menos um caractere antes de usá-lo, caso contrário, você receberá uma exceção.fonte
Apenas ... uma solução completa, vejo que acabou de combinar o que todo mundo acabou postando = P.
fonte
return original.length() == 0 ? original : original.substring(0, 1).toUpperCase() + original.substring(1);
if length() == 0
não podemos dizer com segurança que é""
e devolvê-lo em vez deoriginal
? Economiza alguns caracteres em uma linha. Pergunto porque sinto que o Java é uma linguagem tão cheia de pegadinhas que, sinceramente, não ficaria surpreso se houvesse outra maneira de ter uma sequência de comprimento zero.String.toUpperCase(Locale)
para uma sequência arbitrária, porque o Local precisa corresponder ao texto. Sim, ele deve ser usado, mas nem sempre está claro queLocale
usar ...A maneira mais simples é usar
org.apache.commons.lang.StringUtils
classeStringUtils.capitalize(Str);
fonte
capitalize
?Além disso, existe
org.springframework.util.StringUtils
no Spring Framework :fonte
StringUtils.capitalize(str)
do apache commons-lang .
fonte
fonte
fonte
Aqui está (espero que isso lhe dê a idéia):
fonte
StdIn
eStdOut
não é muito Java-y. :-)É necessário apenas um código de linha simples para isso. se for
String A = scanner.nextLine();
necessário, escreva-o para exibir a sequência com a primeira letra maiúscula.System.out.println(A.substring(0, 1).toUpperCase() + A.substring(1));
E está feito agora.
fonte
Exemplo usando a classe StringTokenizer:
fonte
Solução com StringBuilder:
.. com base em respostas anteriores
fonte
Somando tudo, é uma boa idéia aparar para obter espaço em branco extra no início da string. Caso contrário, .substring (0,1) .toUpperCase tentará capitalizar um espaço em branco.
fonte
Minha abordagem funcional. capitiliza o primeiro caractere da sentença após a saída em branco do parágrafo inteiro.
Para capturar somente o primeiro caractere da palavra, basta remover .split ("")
fonte
Atualização julho 2019
Atualmente, a função de biblioteca mais atualizada para fazer isso está contida em
org.apache.commons.lang3.StringUtils
Se você estiver usando o Maven, importe a dependência no seu pom.xml:
fonte
Mesmo para código "simples", eu usaria bibliotecas. O problema não é o código em si, mas os casos de teste já existentes que cobrem casos excepcionais. Pode ser
null
, cadeias vazias, cadeias em outros idiomas.A parte de manipulação de palavras foi removida do Apache Commons Lang. Agora é colocado no texto Apache Commons . Obtenha-o em https://search.maven.org/artifact/org.apache.commons/commons-text .
Você pode usar o WordUtils.capitalize (String str) no Apache Commons Text. É mais poderoso do que você pediu. Também pode capitalizar fulle (por exemplo, fixar
"oNe tousand only"
).Como funciona em texto completo, é preciso dizer a ele para colocar em maiúscula apenas a primeira palavra.
Classe JUnit completa para permitir a reprodução com a funcionalidade:
fonte
se você quiser colocar apenas a primeira letra em maiúscula, o código abaixo pode ser usado
fonte
Na verdade, você obterá o melhor desempenho se evitar o
+
operador e usarconcat()
neste caso. É a melhor opção para mesclar apenas 2 strings (embora não seja tão bom para muitas strings). Nesse caso, o código ficaria assim:fonte
Usa isto:
fonte
Dada a
input
sequência:fonte
Você pode tentar o seguinte código:
fonte
fonte
Gostaria de adicionar uma verificação NULL e IndexOutOfBoundsException na resposta aceita.
Código Java:
Resultado:
fonte
A seguir, você fornecerá a mesma saída consistente, independentemente do valor da sua inputString:
fonte
1. Usando o
substring()
método StringAgora basta chamar o
capitalize()
método para converter a primeira letra de uma string em maiúscula:2. Apache Commons Lang
A
StringUtils
classe do Commons Lang fornece ocapitalize()
método que também pode ser usado para essa finalidade:Adicione a seguinte dependência ao seu
pom.xml
arquivo (somente para Maven):Aqui está um artigo que explica essas duas abordagens em detalhes.
fonte
fonte