Метод первая буква заглавная java

Как использовать первую букву строки в Java?

Я использую Java, чтобы получить вход String от пользователя. Я пытаюсь сделать первую букву этого ввода капитализированной.

String name; BufferedReader br = new InputStreamReader(System.in); String s1 = name.charAt(0).toUppercase()); System.out.println(s1 + name.substring(1)); 

что привело к ошибкам компилятора:

ОТВЕТЫ

Ответ 1

String str = "java"; String cap = str.substring(0, 1).toUpperCase() + str.substring(1); // cap = "Java" 
public static void main(String[] args) throws IOException < BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // Actually use the Reader String name = br.readLine(); // Don't mistake String object with a Character object String s1 = name.substring(0, 1).toUpperCase(); String nameCapitalized = s1 + name.substring(1); System.out.println(nameCapitalized); >

Ответ 2

Ответ 3

Коротко/более быстрый код версии для заглавной буквы первой строки строки:

String name = "stackoverflow"; name = name.substring(0,1).toUpperCase() + name.substring(1).toLowerCase(); 

значение name равно «Stackoverflow»

Ответ 4

Используйте общую библиотеку Apache. Освободите свой мозг от этих материалов и избегайте Null Pointer & Index Out of Bound Exceptions

Импортируйте библиотеку apache common lang, помещая это в зависимости build.gradle

compile 'org.apache.commons:commons-lang3:3.6' 

Если вы уверены, что ваша строка имеет строчный регистр, или все, что вам нужно, это инициализировать первую букву,

StringUtils.capitalize(yourString); 

Если вы хотите убедиться, что только первая буква toLowerCase() , например, сделать это для enum , toLowerCase() вызовите toLowerCase() и имейте в виду, что он выкинет NullPointerException если входная строка равна нулю.

StringUtils.capitalize(YourEnum.STUFF.name().toLowerCase()); StringUtils.capitalize(yourString.toLowerCase()); 

Здесь представлено больше образцов, предоставленных apache. это исключение бесплатно

StringUtils.capitalize(null) = null StringUtils.capitalize("") = "" StringUtils.capitalize("cat") = "Cat" StringUtils.capitalize("cAt") = "CAt" StringUtils.capitalize("'cat'") = "'cat'" 

WordUtils также включен в эту библиотеку, но устарел. Пожалуйста , не используйте это.

Читайте также:  Php preg match count

Ответ 5

Что вы хотите сделать, вероятно, это:

s1 = name.substring(0, 1).toUpperCase() + name.substring(1); 

(преобразует сначала char в верхний регистр и добавляет оставшуюся часть исходной строки)

Кроме того, вы создаете считыватель потока ввода, но никогда не читаете ни одной строки. Таким образом, name всегда будет null .

BufferedReader br = new InputstreamReader(System.in); String name = br.readLine(); String s1 = name.substring(0, 1).toUpperCase() + name.substring(1); 

Ответ 6

Ответ 7

Ниже будет работать решение.

String A = "stackOverflow"; String ACaps = A.toUpperCase().charAt(0)+A.substring(1,A.length()); //Will print StackOverflow 

Вы не можете использовать toUpperCase() для примитивного символа, но сначала можете сделать всю строку в верхнем регистре, а затем взять первый символ, а затем добавить к подстроке, как показано выше.

Ответ 8

просто вспомогательный метод для заглавных букв каждой строки.

public static String capitalize(String str)

После этого просто позвоните str = capitalize(str)

Для пользователей Kotlin просто позвоните:

Ответ 9

Ответ 10

Установите строку в нижний регистр, затем установите первую букву в верхнюю часть следующим образом:

 userName = userName.toLowerCase(); 

чтобы заглавная буква первой буквы:

 userName = userName.substring(0, 1).toUpperCase() + userName.substring(1).toLowerCase(); 

просто получает часть большей строки, затем мы объединяем их вместе.

Ответ 11

import org.apache.commons.lang3.text.WordUtils; public class Main < public static void main(String[] args) < final String str1 = "HELLO WORLD"; System.out.println(capitalizeFirstLetter(str1)); // output: Hello World final String str2 = "Hello WORLD"; System.out.println(capitalizeFirstLetter(str2)); // output: Hello World final String str3 = "hello world"; System.out.println(capitalizeFirstLetter(str3)); // output: Hello World final String str4 = "heLLo wORld"; System.out.println(capitalizeFirstLetter(str4)); // output: Hello World >private static String capitalizeFirstLetter(String str) < return WordUtils.capitalizeFully(str); >> 

Ответ 12

String message = "my message"; message = Character.toUpperCase(message.charAt(0)) + message.substring(1); System.out.println(message) // Will output: My message 

Ответ 13

String str1 = "hello"; str1.substring(0, 1).toUpperCase()+str1.substring(1); 

Ответ 14

Вы также можете попробовать следующее:

 String s1 = br.readLine(); char[] chars = s1.toCharArray(); chars[0] = Character.toUpperCase(chars[0]); s1= new String(chars); System.out.println(s1); 

Это лучше (оптимизировано), чем при использовании подстроки. (но не беспокоиться о маленькой строке)

Ответ 15

Вы можете использовать substring() для этого.

Но есть два разных случая:

Если значение String , которое вы используете, предназначено для чтения человеком, вы также должны указать локаль по умолчанию:

String firstLetterCapitalized = myString.substring(0, 1).toUpperCase(Locale.getDefault()) + myString.substring(1); 

Если вы капитализируете String , вы должны быть машиночитаемыми, не используйте Locale.getDefault() , потому что возвращаемая строка будет непоследовательна в разных регионах и в этом случае всегда укажет одну и ту же локаль (например, toUpperCase(Locale.ENGLISH) ). Это гарантирует, что строки, которые вы используете для внутренней обработки, согласованы, что поможет вам избежать труднодоступных ошибок.

Примечание. Вам не нужно указывать Locale.getDefault() для toLowerCase() , поскольку это делается автоматически.

Ответ 16

В Android Studio

Добавьте эту зависимость в свой build.gradle (Module: app)

Теперь вы можете использовать

String string = "STRING WITH ALL CAPPS AND SPACES"; string = string.toLowerCase(); // Make all lowercase if you have caps someTextView.setText(WordUtils.capitalize(string)); 

Ответ 17

Use this utility method to get all first letter in capital. String captializeAllFirstLetter(String name) < char[] array = name.toCharArray(); array[0] = Character.toUpperCase(array[0]); for (int i = 1; i < array.length; i++) < if (Character.isWhitespace(array[i - 1])) < array[i] = Character.toUpperCase(array[i]); >> return new String(array); > 

Ответ 18

Это просто для того, чтобы показать вам, что вы не ошибаетесь.

BufferedReader br = new InputstreamReader(System.in); // Assuming name is not blank String name = br.readLine(); //No more error telling that you cant convert char to string String s1 = (""+name.charAt(0)).toUppercase()); // Or, as Carlos prefers. See the comments to this post. String s1 = Character.toString(name.charAt(0)).toUppercase()); System.out.println(s1+name.substring(1)); 

Примечание. Это не лучший способ сделать это. Это просто, чтобы показать OP, что это можно сделать, используя charAt() .;)

Ответ 19

Что этот метод делает, так это то, что, рассмотрим слово «мир привет», этот метод превратит его в «Hello World», заглавную в начале каждого слова.

 private String capitalizer(String word) < String[] words = word.split(" "); StringBuilder sb = new StringBuilder(); if (words[0].length() >0) < sb.append(Character.toUpperCase(words[0].charAt(0)) + words[0].subSequence(1, words[0].length()).toString().toLowerCase()); for (int i = 1; i < words.length; i++) < sb.append(" "); sb.append(Character.toUpperCase(words[i].charAt(0)) + words[i].subSequence(1, words[i].length()).toString().toLowerCase()); >> return sb.toString(); > 

Ответ 20

char[] array = value.toCharArray(); array[0] = Character.toUpperCase(array[0]); String result = new String(array); 

Ответ 21

Вы можете использовать следующий код:

public static void main(String[] args) < capitalizeFirstLetter("java"); capitalizeFirstLetter("java developer"); >public static void capitalizeFirstLetter(String text) < StringBuilder str = new StringBuilder(); String[] tokens = text.split("\\s");// Can be space,comma or hyphen for (String token : tokens) < str.append(Character.toUpperCase(token.charAt(0))).append(token.substring(1)).append(" "); >str.toString().trim(); // Trim trailing space System.out.println(str); > 

Ответ 22

Ответы даны только для заглавных букв только в одном слове. используйте следующий код, чтобы использовать заглавную строку

public static void main(String[] args) < String str = "this is a random string"; StringBuilder capitalizedString = new StringBuilder(); String[] splited = str.trim().split("\\s+"); for (String string : splited) < String s1 = string.substring(0, 1).toUpperCase(); String nameCapitalized = s1 + string.substring(1); capitalizedString.append(nameCapitalized); capitalizedString.append(" "); >System.out.println(capitalizedString.toString().trim()); > 

вывод: This Is A Random String

Ответ 23

Если для входного параметра задан UpperCase, используйте следующее:

str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase();

Если для Input задано значение LowerCase, используйте следующее:

str.substring(0, 1).toUpperCase() + str.substring(1);

Ответ 24

Посмотрите на ACL WordUtils.

WordUtils.capitalize( «ваша строка» ) == «Ваша строка»

Ответ 25

public static String capitalizer(final String texto) < // split words String[] palavras = texto.split(" "); StringBuilder sb = new StringBuilder(); // list of word exceptions Listexcessoes = new ArrayList(Arrays.asList("de", "da", "das", "do", "dos", "na", "nas", "no", "nos", "a", "e", "o", "em", "com")); for (String palavra : palavras) < if (excessoes.contains(palavra.toLowerCase())) sb.append(palavra.toLowerCase()).append(" "); else sb.append(Character.toUpperCase(palavra.charAt(0))).append(palavra.substring(1).toLowerCase()).append(" "); >return sb.toString().trim(); > 

Ответ 26

Вы можете использовать следующий код:

public static String capitalizeString(String string) < if (string == null || string.trim().isEmpty()) < return string; >char c[] = string.trim().toLowerCase().toCharArray(); c[0] = Character.toUpperCase(c[0]); return new String(c); > 
@Test public void capitalizeStringUpperCaseTest() < String string = "HELLO WORLD "; string = capitalizeString(string); assertThat(string, is("Hello world")); >@Test public void capitalizeStringLowerCaseTest()

Ответ 27

Еще один пример, как вы можете сделать первую букву пользовательского ввода с заглавной буквы:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String string = br.readLine(); // handle supplementary characters IntStream.concat( IntStream.of(string.codePointAt(0)) .map(Character::toUpperCase), string.codePoints().skip(1) ) .forEach(cp -> System.out.print(Character.toChars(cp))); 

Ответ 28

  • неверно: они думают, что char — это отдельный символ (кодовая точка), в то время как это слово UTF-16, которое может быть половиной суррогатной пары или
  • использовать библиотеки, которые сами по себе неплохие, но требуют добавления зависимостей в ваш проект, или
  • использовать потоки Java 8, что совершенно правильно, но не всегда возможно.

Давайте посмотрим на суррогатные символы (каждый такой символ состоит из двух слов UTF-16 — Java char ) и может иметь прописные и строчные буквы:

IntStream.rangeClosed(0x01_0000, 0x10_FFFF) .filter(ch -> Character.toUpperCase(ch) != Character.toLowerCase(ch)) .forEach(ch -> System.out.print(new String(new int[] < ch >, 0, 1))); 

Многие из них могут выглядеть для вас как «тофу» (□), но в основном они являются действительными символами редких сценариев, и некоторые шрифты поддерживают их.

Например, давайте посмотрим на маленькую букву Дезерет Long я (𐐨), U + 10428, «\uD801\uDC28» :

System.out.println("U+" + Integer.toHexString( "\uD801\uDC28".codePointAt(0) )); // U+10428 System.out.println("U+" + Integer.toHexString( Character.toTitleCase("\uD801\uDC28".codePointAt(0)) )); // U+10400 — ok! capitalized character is another code point System.out.println("U+" + Integer.toHexString(new String(new char[] < Character.toTitleCase("\uD801\uDC28".charAt(0)), "\uD801\uDC28".charAt(1) >).codePointAt(0))); // U+10428 — oops! — cannot capitalize an unpaired surrogate 

Таким образом, кодовая точка может начинаться с заглавной буквы даже в тех случаях, когда char не может быть. Учитывая это, давайте напишем правильный (и совместимый с Java 1.5!) Капитализатор:

@Contract("null -> null") public static CharSequence capitalize(CharSequence input)

И проверьте, работает ли он:

public static void main(String[] args) < // ASCII System.out.println(capitalize("whatever")); // w ->W // UTF-16, no surrogate System.out.println(capitalize("что-то")); // ч -> Ч // UTF-16 with surrogate pairs System.out.println(capitalize("\uD801\uDC28")); // 𐐨 -> 𐐀 > 

Ответ 29

Многие из ответов очень полезны, поэтому я использовал их для создания метода, чтобы превратить любую строку в заголовок (первый символ заглавный):

static String toTitle (String s)

Ответ 30

Просто переработал код Jorgesys и добавил несколько проверок из-за нескольких случаев, связанных с длиной строки. Не делайте для нулевой проверки ссылок в моем случае.

 public static String capitalizeFirstLetter(@NonNull String customText) < int count = customText.length(); if (count == 0) < return customText; >if (count == 1) < return customText.toUpperCase(); >return customText.substring(0, 1).toUpperCase() + customText.substring(1).toLowerCase(); > 

Источник

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

Т.к. строки в Java неизменяемы, то нам придется создать новую строку. Перевести нужные символы в заглавные можно с помощью метода toUpperCase() :

public class App  public static void main(String[] args)  String word = "hello"; String newWord = word.substring(0, 1).toUpperCase() + word.substring(1); System.out.println(word); // => hello System.out.println(newWord); // => Hello > > 

Источник

Шпаргалки Java: как сделать заглавной первую букву в слове

Для того, чтобы сделать заглавной первую букву в слове, напишем собственную функцию firstUpperCase. Метод firstUpperCase будет принимать слово, а возвращать тоже слово, но с первой заглавной буквой.

public String firstUpperCase(String word) if(word == null || word.isEmpty()) return ""; //или return word; return word.substring(0, 1).toUpperCase() + word.substring(1); >

word.substring(0, 1) — возвращает первую букву в слове
word.substring(0, 1).toUpperCase() — переводит первую букву в верхний регистр
word.substring(1) — добавляет остальные символы без изменения

Источник

Преобразование первого символа в верхний регистр в предложении в Java

Чтобы преобразовать первый символ в верхний регистр в предложении в Java, мы должны сначала отделить каждое слово в предложении, а затем сделать первый символ каждого слова в верхнем регистре. После этого мы должны снова соединить каждое слово, разделенное пробелом, чтобы снова сделать предложение.

Теперь давайте возьмем каждую задачу одну за другой. Во-первых, чтобы получить каждое слово предложения отдельно, мы бы использовали класс Java Scanner и реализовали его метод hasnext, чтобы проверить, есть ли в нашем предложении больше слова или нет. Если слово присутствует тогда мы получили бы это слово, используя следующий метод того же класса.

После получения каждого слова в предложении мы теперь преобразуем первый символ каждого слова в верхний регистр, используя метод toUpperCase класса Character. Соединяем другие символы слова, используя метод подстроки строкового класса, а также добавляем пробел в конце каждого слова. чтобы сделать их снова в предложении.

Пример

import java.util.Scanner; public class UpperCaseOfSentence < public static void main(String[] args) < String upper_case_line = ""; String str = "ram is a good boy."; Scanner lineScan = new Scanner(str); while(lineScan.hasNext()) < String word = lineScan.next(); upper_case_line += Character.toUpperCase(word.charAt(0)) + word.substring(1) + " "; >System.out.println(upper_case_line); > >

Итог

Средняя оценка 5 / 5. Количество голосов: 7

Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.

Видим, что вы не нашли ответ на свой вопрос.

Напишите комментарий, что можно добавить к статье, какой информации не хватает.

Источник

Оцените статью