【问题标题】:How do I build this words to one sentence after looping?循环后如何将这个单词构建成一个句子?
【发布时间】:2019-10-31 14:21:37
【问题描述】:

Am Looping through a sentence split it to capitalize.But it's hard to build it back after getting the individual words.

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 + " "));

    }

}

我希望只得到一个完全构建的字符串“不是您正在寻找的答案。”

【问题讨论】:

  • 请提供您得到的错误结果
  • 希望对您有所帮助,stackoverflow.com/questions/3904579/…
  • char firstLetter = word.substring(0,1).toUpperCase().charAt(0); 恕我直言,char firstLetter = Character.toUpperCase(word.charAt(0)); 更具可读性

标签: java string loops


【解决方案1】:
  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());

您不会只得到一个字符串,因为您在 for 循环中使用了 System.out.println

考虑我上面的例子

【讨论】:

    【解决方案2】:
    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() 或像这样使用 somth

    Arrays.stream(str.toLowerCase().split(" "))
       .map(word -> str.substring(0, 1).toUpperCase() + str.substring(1))
       .collect(Collectors.joining(" "));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多