Java 基于空格分割字符串

Java 基于空格分割字符串,java,android,regex,textutils,Java,Android,Regex,Textutils,(标题可能有误导性。我一直认为困难的部分是找到合适的标题:D) 嗯,句子只是(长的)字符串。我想以相反的方式展示这些句子。示例:“StackOverflow是一个很棒的程序员社区”将变成“程序员a是StackOverflow” 所以我的想法是有一个分隔符,这里是一个空格。每当输入文本并按下空格键时,将该单词保存在列表、ArrayList中,然后在textView中以相反的顺序显示它们 到目前为止,我只能输出文本,但没有空格(编程人员sawesomeofcommunityaisstackoverf

(标题可能有误导性。我一直认为困难的部分是找到合适的标题:D)

嗯,句子只是(长的)字符串。我想以相反的方式展示这些句子。示例:
“StackOverflow是一个很棒的程序员社区”
将变成
“程序员a是StackOverflow”

所以我的想法是有一个分隔符,这里是一个空格。每当输入文本并按下空格键时,将该单词保存在列表、ArrayList中,然后在textView中以相反的顺序显示它们

到目前为止,我只能输出文本,但没有空格(
编程人员sawesomeofcommunityaisstackoverflow
),只能使用按钮。我使用以下代码来完成此操作:

@Override
        public void onClick(View v) {
            String[] sentence = input.getText().toString().split(" "); //This split() method is the culprit!
            ArrayList<String> wordArray = new ArrayList<>();
            for (String word : sentence) {
                    wordArray.add(word);
            }
            Collections.sort(wordArray);
            StringBuilder invertedSentence = new StringBuilder();
            for (int i = wordArray.size(); i > 0; i--) {
                invertedSentence.append(wordArray.get(i - 1));
            }
            output.setText(invertedSentence.toString());
        }
    });
@覆盖
公共void onClick(视图v){
String[]句子=input.getText().toString().split(“”;//这个split()方法就是罪魁祸首!
ArrayList wordArray=新的ArrayList();
for(字符串:句子){
添加(word);
}
Collections.sort(wordArray);
StringBuilder InversedEntence=新StringBuilder();
对于(int i=wordArray.size();i>0;i--){
inversedEntence.append(wordArray.get(i-1));
}
output.setText(invertdsentence.toString());
}
});
当系统检测到空白时,如何将句子(自动)保存在列表中作为分割词?在输出句子中添加空格


谢谢您的时间。

许多评论都有很好的建议,但这里有一种方法您可以使用:

    String[] sentence = new String("StackOverflow is a community of awesome programmers").split(" ");
    ArrayList<String> wordArray = new ArrayList<>();
    for (String word : sentence) {
       wordArray.add(0, word);
    }

    String backwards = String.join(" ", wordArray);
    System.out.println(backwards);

为什么要排序
wordArray
?空格的正则表达式是
\\s
是一个空字符串。它甚至不包含空格。我假设您的意思是
”\\s+“
(任何空格,包括制表符等)。此外,在组合倒过来的句子时,您可能还需要添加一些空格,例如,通过
invertdsentence.append(“”.append(wordArray.get(i-1))
或者更好地使用Java8的流来反转数组,并使用
join(“”
)连接字符串。另一个注意事项是:
Collections.sort(wordArray)
不会反转列表,而是对其进行排序,也就是说,您的示例文本将变成
一个很棒的程序员社区StackOverflow
(假设其余内容正确)。@Thomas谢谢。我试图找到一种方法来给倒立的桌子加上空格sentence@ElliottFrisch这样我就可以向后循环输出倒装句。我错了
String.join
需要AndroidO@esQmo_,您发布的代码似乎拆分为空字符串。这是一个输入错误,因为我没有复制粘贴它。我要解决的问题是,如何让这段代码在android设备版本TextUtils.join
programmers awesome of community a is StackOverflow