Даже для «простого» кода я бы использовал библиотеки. Дело не в самом коде, а в уже существующих тестах, охватывающих исключительные случаи. Это могут быть null
пустые строки, строки на других языках.
Часть манипулирования словом была удалена из Apache Commons Lang. Теперь он помещен в Apache Commons Text . Получите его через https://search.maven.org/artifact/org.apache.commons/commons-text .
Вы можете использовать WordUtils.capitalize (String str) из Apache Commons Text. Это мощнее, чем вы просили. Он также может использовать заглавные буквы (например, исправление "oNe tousand only"
).
Так как он работает с полным текстом, нужно сказать, что оно должно начинаться только с первого слова.
WordUtils.capitalize("one thousand only", new char[0]);
Полный класс JUnit для включения игры с функциональностью:
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]));
}
}