java - 每 2 个单词后拆分字符串并存储到列表中

标签 java arrays

我有一串单词如下:

String words = "disaster kill people action scary seriously world murder loose world";

现在,我希望将每 2 个单词拆分并将它们存储到一个列表中,这样它会产生如下内容:

[disaster kill, people action, scary seriously,...]

我的代码的问题是它会在遇到空格时拆分。我该如何修改它,以便它仅在遇到每 2 个空格时才会被添加到列表中,并保留每个单词后的空格)

我的代码:

ArrayList<String> wordArrayList = new ArrayList<String>();
     for(String word : joined.split(" ")) {
         wordArrayList.add(word);
     }

谢谢。

最佳答案

使用这个正则表达式:(?<!\\G\\S+)\\s .

证明:

String words = "disaster kill people action scary seriously world murder loose world";
String[] result = words.split("(?<!\\G\\S+)\\s");

System.out.printf("%s%n", Arrays.toString(result));

结果:

[disaster kill, people action, scary seriously, world murder, loose world]

关于java - 每 2 个单词后拆分字符串并存储到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37349455/

相关文章:

java - 抽象类和多态问题

java - 创建自定义控件以包含其他自定义控件

创建具有不同长度的静态数组

c# - 我将如何对结构数组进行排序?

java - 将新元素添加到固定数组中

c# - int test[] = new int[0] 是什么意思?

java - Spring 按名称构造函数参数 Autowiring

java - 用于从字符串中删除 HTML 标记的正则表达式

java - 从 Scribe 中的请求 header 中删除 oauth_token

c - 如何创建一个空数组来存储根据 C 程序给定计算得出的值