Пример строки
one thousand only
two hundred
twenty
seven
Как изменить первый символ строки заглавной буквой, а не изменить регистр других букв?
После изменения должно быть:
One thousand only
Two hundred
Twenty
Seven
Примечание: я не хочу использовать apache.commons.lang.WordUtils для этого.
Ответы:
Если вы хотите использовать только заглавную букву первой строки
input
и оставить остальные в покое:Теперь
output
будет то, что вы хотите. Перед использованием убедитесь, что у васinput
есть хотя бы один символ, иначе вы получите исключение.источник
Просто ... полное решение, я вижу, что оно как бы в конечном итоге объединяет то, что все остальные в конечном итоге публикуют = P.
источник
return original.length() == 0 ? original : original.substring(0, 1).toUpperCase() + original.substring(1);
if length() == 0
разве мы не можем с уверенностью сказать, что это""
и вернуть, а неoriginal
? Спасает нас несколько символов в одну строчку. Я спрашиваю, потому что я чувствую, что Java - это язык, полный гочей, и, честно говоря, я бы не удивился, если бы был какой-то другой способ получить строку нулевой длины.String.toUpperCase(Locale)
для произвольной строки, потому что языковой стандарт должен соответствовать тексту. Да, его следует использовать, но не всегда понятно, какойLocale
использовать ...Самый простой способ - использовать
org.apache.commons.lang.StringUtils
классStringUtils.capitalize(Str);
источник
capitalize
?Также есть
org.springframework.util.StringUtils
в Spring Framework :источник
StringUtils.capitalize(str)
от Apache Commons-Lang .
источник
источник
источник
Вот, пожалуйста (надеюсь, это даст вам идею):
источник
StdIn
иStdOut
не очень Java-у. :-)Для этого нужен простой однострочный код. если
String A = scanner.nextLine();
тогда вам нужно написать это для отображения строки с заглавной первой буквой.System.out.println(A.substring(0, 1).toUpperCase() + A.substring(1));
И это сделано сейчас.
источник
Пример использования класса StringTokenizer:
источник
Решение с помощью StringBuilder:
.. основываясь на предыдущих ответах
источник
Суммируя все вместе, неплохо обрезать лишние пробелы в начале строки. В противном случае .substring (0,1) .toUpperCase попытается использовать пробел в верхнем регистре.
источник
Мой функциональный подход. его первый символ в предложении после белого пробела в абзаце.
Для ввода только первого символа слова просто удалите .split ("")
источник
Обновление июль 2019
В настоящее время самая современная библиотечная функция для этого содержится в
org.apache.commons.lang3.StringUtils
Если вы используете Maven, импортируйте зависимость в ваш pom.xml:
источник
Даже для «простого» кода я бы использовал библиотеки. Дело не в самом коде, а в уже существующих тестах, охватывающих исключительные случаи. Это могут быть
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"
).Так как он работает с полным текстом, нужно сказать, что оно должно начинаться только с первого слова.
Полный класс JUnit для включения игры с функциональностью:
источник
если вы хотите использовать только заглавные буквы, используйте приведенный ниже код
источник
На самом деле, вы получите лучшую производительность, если вы будете избегать
+
оператора и использоватьconcat()
в этом случае. Это лучший вариант для объединения только двух строк (хотя не так хорошо для многих строк). В этом случае код будет выглядеть так:источник
Использовать это:
источник
Учитывая
input
строку:источник
Вы можете попробовать следующий код:
источник
источник
Я хотел бы добавить проверку NULL и IndexOutOfBoundsException на принятый ответ.
Java-код:
Вывод:
источник
Следующее даст вам одинаковый согласованный вывод независимо от значения вашего inputString:
источник
1. Использование
substring()
метода StringТеперь просто вызовите
capitalize()
метод для преобразования первой буквы строки в верхний регистр:2. Apache Commons Lang
StringUtils
Класс от Commons Lang предоставляетcapitalize()
метод , который также может быть использован для этой цели:Добавьте следующую зависимость в ваш
pom.xml
файл (только для Maven):Вот статья, которая объясняет эти два подхода в деталях.
источник
источник