Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как сделать первую букву заглавной

Короткий ответ

Возьмите первый символ, переведите в верхний регистр и приклейте остаток строки:

void main() {
    String name = "anna";
    String result = name.substring(0, 1).toUpperCase() + name.substring(1);
 
    IO.println(result);
}

Результат:

Anna

Безопасный метод

Для пустой строки substring(0, 1) выбросит исключение, поэтому проверьте длину:

String capitalize(String text) {
    if (text == null || text.isEmpty()) {
        return text;
    }
    return Character.toUpperCase(text.charAt(0)) + text.substring(1);
}
 
void main() {
    IO.println(capitalize("java"));
    IO.println("[" + capitalize("") + "]");
}

Результат:

Java
[]

Остальные буквы — маленькие

Если строка пришла в верхнем регистре, сначала приведите её к нижнему:

void main() {
    String city = "BERLIN";
    String lower = city.toLowerCase();
 
    IO.println(lower.substring(0, 1).toUpperCase() + lower.substring(1));
}

Результат:

Berlin

Каждое слово

Разбейте строку на слова, обработайте каждое и соберите обратно:

void main() {
    String title = "the old man and the sea";
 
    String result = Arrays.stream(title.split(" "))
            .map(word -> word.substring(0, 1).toUpperCase() + word.substring(1))
            .collect(Collectors.joining(" "));
    IO.println(result);
}

Результат:

The Old Man And The Sea

Частая ошибка

Вызвать substring(0, 1) у пустой строки:

void main() {
    String name = "";
    IO.println(name.substring(0, 1).toUpperCase());
}

Результат:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0

Проверяйте isEmpty() перед тем, как брать первый символ.

Функции из этого ответа

  • String.substring() — Возвращает часть строки между двумя индексами.
  • String.toUpperCase() — Возвращает копию строки, где все буквы заглавные.
  • String.charAt() — Возвращает символ строки по индексу.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.