Как мне построить эти слова в одном предложении после цикла? - PullRequest
0 голосов
/ 31 октября 2019

Я перебираю предложение, разделяя его на заглавные. Но трудно получить его обратно после получения отдельных слов.

String str = "Not the answer you're looking for.";
     StringBuilder stringBuilder = new StringBuilder();
 String oneWord =" ";
    for (String word : str.toLowerCase().split(" ")){
        char firstLetter = word.substring(0,1).toUpperCase().charAt(0);
       oneWord  = firstLetter + word.substring(1);

        System.out.println(stringBuilder.append(oneWord + " "));

    }

}

Я ожидаю получить только одну полностью построенную строку "Not The Answer You"'Ищешь. "

Ответы [ 2 ]

2 голосов
/ 31 октября 2019
  String str = "Not the answer you're looking for.";
  StringBuilder stringBuilder = new StringBuilder();
  String oneWord =" ";
  for (String word : str.toLowerCase().split(" ")){
    char firstLetter = word.substring(0,1).toUpperCase().charAt(0);
    oneWord  = firstLetter + word.substring(1);
    stringBuilder.append(oneWord + " ");
  }
  System.out.println(stringBuilder.toString());

Вы не получаете только одну строку, потому что вы используете System.out.println внутри for цикла.

Рассмотрим мой пример выше

1 голос
/ 31 октября 2019
oneWord += firstLetter + word.substring(1) + " ";

после цикла

oneWord = oneWord.trim();
System.out.println(oneWord);

Итак, решение:

  String str = "Not the answer you're looking for.";
  StringBuilder sb = new StringBuilder();
  for (String word : str.toLowerCase().split(" ")) {
    sb.append(str.substring(0, 1).toUpperCase()); 
    sb.append(str.substring(1));
    sb.append(" ");
  }
  System.out.println(stringBuilder.toString().trim());

Также ваше решение не является оптимальным. Проверьте String.join () или используйте что-нибудь вроде этого

Arrays.stream(str.toLowerCase().split(" "))
   .map(word -> str.substring(0, 1).toUpperCase() + str.substring(1))
   .collect(Collectors.joining(" "));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...