如何使用StringBuilder在此Java程序中处理字符串?

如何使用StringBuilder在此Java程序中处理字符串?,java,string,stringbuilder,Java,String,Stringbuilder,我搞不清楚这个问题 将句子转换为字符串,其中单词之间用空格分隔,只有第一个单词以大写字母开头。例如,字符串“StopAndSomeTheRoses.”将转换为“StopAndSomeTheRoses.”。使用StringBuilder对象处理该字符串。使用JOptionPane进行用户输入/输出。使用包装类字符检测单词 到目前为止我所拥有的。我对如何使用包装器类检测大写字母并在其后面插入空格感到困惑 public static void main(String[] args) { S

我搞不清楚这个问题

将句子转换为字符串,其中单词之间用空格分隔,只有第一个单词以大写字母开头。例如,字符串“StopAndSomeTheRoses.”将转换为“StopAndSomeTheRoses.”。使用StringBuilder对象处理该字符串。使用JOptionPane进行用户输入/输出。使用包装类字符检测单词

到目前为止我所拥有的。我对如何使用包装器类检测大写字母并在其后面插入空格感到困惑

public static void main(String[] args) {


    String input;


    input = JOptionPane.showInputDialog("Please enter a sentence in which "
            + "every word "
            + "begins with an upper case letter: ");

    input = input.trim();

    StringBuilder sb = new StringBuilder(input);

    for(int i = 0; i < input.length(); i++)
     {
        if((Character.isUpperCase(input)))
      {

        }
    }

}
publicstaticvoidmain(字符串[]args){
字符串输入;
input=JOptionPane.showInputDialog(“请输入一个句子,其中”
+“每一个字”
+“以大写字母开头:”);
input=input.trim();
StringBuilder sb=新的StringBuilder(输入);
对于(int i=0;i
我实际上还没有试过运行这个程序,但可能是类似的

// Iterate up to second last element 
for(int i = 0; i < input.length(); i++) {
    // Get i-th character
    char val = input.charAt(i);
    // If i-th character is upper case
    if((Character.isUpperCase(val))) {
        // Insert whitespace
        sb.append(" ");       
    }
    // Append lower case char
    sb.append(Character.toLowerCase(val));
}
//迭代到倒数第二个元素
对于(int i=0;i
先拆分,然后加入

String str = "StopAndSmellTheRoses.";
String[] r = str.split("(?=\\p{Upper})");
StringBuilder hello = new StringBuilder();
String delimiter = " "; 
for(String s : r) {
   hello.append(s).append(delimiter);
}
System.out.println(hello);

输出:
停下来闻玫瑰香。
因此使用
regex
有一种更简单的方法:


我知道你不喜欢家庭作业,但也许有一个暗示?有很多妓女会很高兴地破坏你的教育,他们会给你一个答案,换取你在这个网站上的几点声誉。你不应该要求这种类型的帮助——这很容易。如果你做不到,你应该学会如何做。在特定语法或出错的事情上寻求帮助,而不是让我们为您完成工作。这是懒惰和智力上的不诚实。下次我会问一些更集中的问题一些提示(作为问题)来帮助你完成家庭作业:1)为什么要从输入的副本开始输出?2)
Character.isUpperCase
需要什么类型的输入?3) 你给它什么作为输入?4) 如何找到该函数的正确输入?(问题2-4可以通过阅读
Character
String
类的文档来回答。仔细阅读它们。)我现在了解到Character包装类需要char作为输入。因此,您需要转换字符串。谢谢这不是对“家庭作业问题”的回答,而是对现实世界的快速简单的解决方案。这也不能完全回答问题,因为只有第一个单词应该以大写字母开头。
Arrays.toString("StopAndSmellTheRoses.".split("(?=[A-Z])"))