Типичная проблема, которая может возникнуть при работе со строками в Java, — это преобразование первой буквы строки в заглавную. Например, необходимо преобразовать введенное пользователем имя так, чтобы первая буква была заглавной.
Возьмем для примера следующий код:
String name; BufferedReader br = new InputStreamReader(System.in); String s1 = name.charAt(0).toUppercase(); System.out.println(s1 + name.substring(1));
В этом коде есть две серьезные ошибки, которые приведут к ошибкам компиляции.
Во-первых, есть попытка присвоить объект InputStreamReader
переменной BufferedReader
. Это недопустимо, поскольку InputStreamReader
не является подклассом BufferedReader
.
Во-вторых, есть попытка вызвать метод toUppercase()
на символе, полученном с помощью метода charAt()
. Это также приведет к ошибке компиляции, поскольку toUppercase()
— это метод класса String
, а не char
.
Чтобы решить эти проблемы, можно использовать следующий подход.
Сначала создадим объект BufferedReader
для чтения ввода пользователя:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Затем прочитаем введенное пользователем имя:
String name = br.readLine();
Далее, чтобы преобразовать первую букву в заглавную, можно преобразовать эту букву в строку и затем вызвать метод toUpperCase()
. Затем эту заглавную букву можно объединить с остальной частью строки, начиная со второй буквы:
String capitalized = name.substring(0, 1).toUpperCase() + name.substring(1);
И, наконец, можно вывести преобразованное имя:
System.out.println(capitalized);
В результате получится следующий код:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String name = br.readLine(); String capitalized = name.substring(0, 1).toUpperCase() + name.substring(1); System.out.println(capitalized);
Этот код корректно преобразует первую букву введенного пользователем имени в заглавную.
Добавить комментарий