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

вы должны сделать это.

    fgetc(stdin);
    scanf("%c",&c);
    if(c!='y')
    {
        break;
    }
    fgetc(stdin);

, чтобы читать ввод от scanf после прочтения.

384
задан Vivek Barai 1 December 2017 в 12:03
поделиться

5 ответов

WordUtils .capitalize (str) (из apache commons-text )

(Примечание: если вам нужно «fOO BAr» , чтобы стать «Foo Bar» , затем используйте capitalizeFully (..) вместо)

711
ответ дан 22 November 2019 в 23:40
поделиться

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

public static String capitalizeString(String string) {
  char[] chars = string.toLowerCase().toCharArray();
  boolean found = false;
  for (int i = 0; i < chars.length; i++) {
    if (!found && Character.isLetter(chars[i])) {
      chars[i] = Character.toUpperCase(chars[i]);
      found = true;
    } else if (Character.isWhitespace(chars[i]) || chars[i]=='.' || chars[i]=='\'') { // You can add other chars here
      found = false;
    }
  }
  return String.valueOf(chars);
}
64
ответ дан True Soft 1 December 2017 в 12:03
поделиться

Использование org.apache.commons.lang.StringUtils делает это очень просто.

capitalizeStr = StringUtils.capitalize(str);
10
ответ дан Peter Mortensen 1 December 2017 в 12:03
поделиться

Я использую следующую функцию. Я думаю, что это быстрее в производительности.

public static String capitalize(String text){
    String c = (text != null)? text.trim() : "";
    String[] words = c.split(" ");
    String result = "";
    for(String w : words){
        result += (w.length() > 1? w.substring(0, 1).toUpperCase(Locale.US) + w.substring(1, w.length()).toLowerCase(Locale.US) : w) + " ";
    }
    return result.trim();
}
5
ответ дан Peter Mortensen 1 December 2017 в 12:03
поделиться

1. Java 8 Потоков

public static String capitalizeAll(String str) {
    if (str == null || str.isEmpty()) {
        return str;
    }

    return Arrays.stream(str.split("\\s+"))
            .map(t -> t.substring(0, 1).toUpperCase() + t.substring(1))
            .collect(Collectors.joining(" "));
}

Примеры:

System.out.println(capitalizeAll("jon skeet")); // Jon Skeet
System.out.println(capitalizeAll("miles o'Brien")); // Miles O'Brien
System.out.println(capitalizeAll("old mcdonald")); // Old Mcdonald
System.out.println(capitalizeAll(null)); // null

Для foo bAR к Foo Bar, замените map() метод со следующим:

.map(t -> t.substring(0, 1).toUpperCase() + t.substring(1).toLowerCase())

2. String.replaceAll() (Java 9 +)

ublic static String capitalizeAll(String str) {
    if (str == null || str.isEmpty()) {
        return str;
    }

    return Pattern.compile("\\b(.)(.*?)\\b")
            .matcher(str)
            .replaceAll(match -> match.group(1).toUpperCase() + match.group(2));
}

Примеры:

System.out.println(capitalizeAll("12 ways to learn java")); // 12 Ways To Learn Java
System.out.println(capitalizeAll("i am atta")); // I Am Atta
System.out.println(capitalizeAll(null)); // null

3. Apache текст палаты общин

System.out.println(WordUtils.capitalize("love is everywhere")); // Love Is Everywhere
System.out.println(WordUtils.capitalize("sky, sky, blue sky!")); // Sky, Sky, Blue Sky!
System.out.println(WordUtils.capitalize(null)); // null

Для titlecase:

System.out.println(WordUtils.capitalizeFully("fOO bAR")); // Foo Bar
System.out.println(WordUtils.capitalizeFully("sKy is BLUE!")); // Sky Is Blue!

для получения дополнительной информации, контроль это учебное руководство .

0
ответ дан 22 November 2019 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: