Я использую Java для получения String
ввода от пользователя. Я пытаюсь сделать первую букву этого ввода заглавной.
Я попробовал это:
String name;
BufferedReader br = new InputStreamReader(System.in);
String s1 = name.charAt(0).toUppercase());
System.out.println(s1 + name.substring(1));
что привело к этим ошибкам компилятора:
Несоответствие типов: невозможно преобразовать InputStreamReader в BufferedReader
Невозможно вызвать toUppercase () для примитивного типа char
java
string
capitalize
Сумитра
источник
источник
Ответы:
С вашим примером:
источник
StringUtils.capitalize(..)
из общего достоянияисточник
StringUtils.capitalize( "fred from jupiter" );
производит"Fred from jupiter"
. Полегче ...: DУкороченный / более быстрый код версии для прописных букв первой буквы строки:
величина
name
IS"Stackoverflow"
источник
Используйте общую библиотеку Apache. Освободите свой мозг от этих вещей и избегайте исключений Null Pointer и Index Out Bound
Шаг 1:
Импортируйте общую библиотеку Apache, поместив ее в
build.gradle
зависимостиШаг 2:
Если вы уверены, что ваша строка состоит из строчных букв или все, что вам нужно, это инициализировать первую букву, позвоните напрямую
Если вы хотите убедиться, что только первая буква написана с заглавной буквы, например, сделав это для an
enum
,toLowerCase()
сначала позвоните и имейте в виду, чтоNullPointerException
если входная строка равна нулю.Вот еще примеры, предоставленные Apache. это исключение бесплатно
Примечание:
WordUtils
также включен в эту библиотеку, но не рекомендуется. Пожалуйста , не используйте это.источник
How to capitalize the first letter of a String in Java?
.Ява:
просто вспомогательный метод для заглавных букв каждой строки.
После этого просто позвоните
str = capitalize(str)
Котлин:
источник
str
NULL. Убедитесь, что строка не пуста и имеет по крайней мере один символ перед использованием.Что вы хотите сделать, это, вероятно, это:
(преобразует первый символ в верхний регистр и добавляет остаток исходной строки)
Кроме того, вы создаете устройство чтения входного потока, но никогда не читаете ни одной строки. Так
name
будет всегдаnull
.Это должно работать:
источник
WordUtils.capitalize(java.lang.String)
от Apache Commons .источник
Ниже решение будет работать.
Вы не можете использовать toUpperCase () на примитивном символе, но вы можете сначала сделать всю строку в верхний регистр, затем взять первый символ, а затем добавить к подстроке, как показано выше.
источник
Использование
WordUtils.capitalize(str)
.источник
Самый короткий тоже:
Работал на меня.
источник
Установите строку в нижний регистр, затем установите первую букву в верхний, как это:
затем заглавные буквы:
подстрока просто получает кусок большей строки, затем мы объединяем их вместе.
источник
Как насчет WordUtils.capitalizeFully () ?
источник
Используйте этот метод, чтобы получить все первые буквы заглавными.
источник
источник
Вы также можете попробовать это:
Это лучше (оптимизировано), чем с использованием подстроки. (но не стоит беспокоиться о маленькой струне)
источник
Вы можете использовать
substring()
для этого.Но есть два разных случая:
Случай 1
Если
String
заглавная буква предназначена для чтения человеком, вам также следует указать локаль по умолчанию:Дело 2
Если
String
вы используете заглавные буквы, чтобы их можно было прочитать на компьютере, избегайте их использования,Locale.getDefault()
поскольку возвращаемая строка будет несовместимой в разных регионах, и в этом случае всегда указывайте один и тот же языковой стандарт (например,toUpperCase(Locale.ENGLISH)
). Это обеспечит согласованность строк, которые вы используете для внутренней обработки, что поможет вам избежать труднодоступных ошибок.Примечание: Вы не должны указывать
Locale.getDefault()
наtoLowerCase()
, как это делается автоматически.источник
В Android Studio
Добавьте эту зависимость к вашему
build.gradle (Module: app)
Теперь вы можете использовать
источник
ПРИМЕЧАНИЕ. Если у вас уже есть зависимость Apache Common Lang, рассмотрите возможность использования их StringUtils.capitalize, как предлагают другие ответы.
ОСУЩЕСТВЛЕНИЕ: https://github.com/spring-projects/spring-framework/blob/64440a5f04a17b3728234afaa89f57766768decb/spring-core/src/main/java/org/springframework/util/StringUtil-355
REF: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/StringUtils.html#capitalize-java.lang.String-
источник
ЭТО БУДЕТ РАБОТАТЬ 101%
источник
Это просто для того, чтобы показать вам, что вы не так не правы.
Примечание: это вовсе не лучший способ сделать это. Это просто для того, чтобы показать ОП, что это можно сделать с помощью
charAt()
. ;)источник
Character.toString(name.charAt(0))
вместо того,""+name.charAt(0)
чтобы показать, что я действительно хочу сделать.Это будет работать
источник
Вы можете использовать следующий код:
источник
Попробуй это
Этот метод заключается в том, что рассмотрим слово «привет мир», которое этот метод превратит в «Hello World», с заглавными буквами начало каждого слова.
источник
Данные ответы предназначены только для заглавных букв первой буквы одного слова. используйте следующий код, чтобы использовать заглавную строку
вывод :
This Is A Random String
источник
Если Input является UpperCase, тогда используйте следующее:
str.substring (0, 1) .toUpperCase () + str.substring (1) .toLowerCase ();
Если Input является LowerCase, тогда используйте следующее:
str.substring (0, 1) .toUpperCase () + str.substring (1);
источник
Посмотрите на ACL WordUtils.
WordUtils.capitalize ("ваша строка") == "Ваша строка"
Как прописать каждую первую букву слова в строке?
источник
источник
Вы можете использовать следующий код:
Пример теста с помощью JUnit:
источник
Используя
commons.lang.StringUtils
лучший ответ:Я нахожу это блестящим, так как он оборачивает строку с помощью StringBuffer. Вы можете манипулировать StringBuffer по своему усмотрению и, используя тот же экземпляр.
источник
Еще один пример того, как вы можете сделать первую букву пользовательского ввода заглавной:
источник