Подтвердить что ты не робот

Первый char в верхний регистр

Возможный дубликат:
Как в верхнем регистре каждая первая буква слова в строке?
Самый эффективный способ сделать первый символ строкового строчного строчка?

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

Вот код, который я пробовал до сих пор:

public static String cap1stChar(String userIdea)
{
    String betterIdea, userIdeaUC;
    char char1;
    userIdeaUC = userIdea.toUpperCase();
    char1 = userIdeaUC.charAt(0);
    betterIdea = userIdea.replaceFirst(char1); 
    return betterIdea;
}//end cap1stChar

Ошибка компилятора заключается в том, что списки аргументов различаются по длине. Я предполагаю, что это потому, что регулярное выражение отсутствует, но я не знаю, что это точно.

4b9b3361

Ответ 1

Регулярные выражения (сокращенно "regex" или "reg-ex" ) - это строка, которая определяет шаблон поиска.

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

Что вы хотите сделать, это преобразовать строку в массив с помощью метода String class <charAt(), а затем использовать Character.toUpperCase(), чтобы изменить символ на верхний регистр (очевидно). Ваш код будет выглядеть так:

char first = Character.toUpperCase(userIdea.charAt(0));
betterIdea = first + userIdea.substring(1);

Или, если вам комфортно с более сложным, однострочным java-кодом:

betterIdea = Character.toUpperCase(userIdea.charAt(0)) + userIdea.substring(1);

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

Ответ 2

Или вы можете сделать

s = Character.toUpperCase(s.charAt(0)) + s.substring(1); 

Ответ 3

public static String cap1stChar(String userIdea)
{
    char[] stringArray = userIdea.toCharArray();
    stringArray[0] = Character.toUpperCase(stringArray[0]);
    return userIdea = new String(stringArray);
}

Ответ 4

Ошибка компиляции не соответствует должным образом, replaceFirst принимает regx как начальный arg. [a-z] {1} будет соответствовать строке простых альфа-символов длины 1.

Попробуйте это.

betterIdea = userIdea.replaceFirst("[a-z]{1}", userIdea.substring(0,1).toUpperCase())

Ответ 5

String toCamelCase(String string) {
    StringBuffer sb = new StringBuffer(string);
    sb.replace(0, 1, string.substring(0, 1).toUpperCase());
    return sb.toString();

}

Ответ 6

userIdeaUC = userIdea.substring(0, 1).toUpperCase() + userIdea.length() > 1 ? userIdea.substring(1) : "";

или

userIdeaUC = userIdea.substring(0, 1).toUpperCase();
if(userIdea.length() > 1)
   userIdeaUC += userIdea.substring(1);

Ответ 7

Для полноты, если вы хотите использовать replaceFirst, попробуйте следующее:

public static String cap1stChar(String userIdea)
{
  String betterIdea = userIdea;
  if (userIdea.length() > 0)
  {
    String first = userIdea.substring(0,1);
    betterIdea = userIdea.replaceFirst(first, first.toUpperCase());
  }
  return betterIdea;
}//end cap1stChar