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.
WordUtils.capitalize("one thousand only", new char[0]);
Classe JUnit completa para permitir a reprodução com a funcionalidade:
package io.github.koppor;
import org.apache.commons.text.WordUtils;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class AppTest {
@Test
void test() {
assertEquals("One thousand only", WordUtils.capitalize("one thousand only", new char[0]));
}
}