我无法解决这个问题
将句子转换为字符串,其中单词以空格分隔,只有第一个单词以大写字母开头。例如,字符串“StopAndSmellTheRoses。”将转换为“停止并闻到玫瑰。”使用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)))
{
}
}
}
答案 0 :(得分:1)
因此,使用regex
与lookahead:
Arrays.toString("StopAndSmellTheRoses.".split("(?=[A-Z])"))
答案 1 :(得分:0)
我实际上没有尝试过这个,但也许是沿着这些路线?
// 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));
}
答案 2 :(得分:0)
拆分然后加入。
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);
输出:Stop And Smell The Roses.