【问题标题】:How to divide sentence into two by two parts?如何将句子分成两部分?
【发布时间】:2014-09-02 21:04:24
【问题描述】:

我有以下类型的句子。我想将句子分成两部分,如下例所示。

例子:

Nimal read/write book/newspaper from his pen.

我想按照上面句子的方式划分并添加到arraylist中。

Nimal/read
Nimal/write
read/book
read/newspaper
write/book
write/newspaper
book/from
newspaper/from
from/his
his/pen.

这意味着我想从下一个单词中得到两个单词短语。我已经划分和添加了句子。但是我不清楚接下来要做什么。

    ArrayList<String> wordArrayList2 = new ArrayList<String>();
    String sentence="Nimal read/write book/newspaper from his pen";
    for(String wordTw0 : sentence.split(" ")) {
        wordArrayList2.add(wordTw0);
    }

【问题讨论】:

  • 正则表达式在这种情况下无济于事。

标签: java string arraylist split


【解决方案1】:

一个使用String#split()方法的简单程序。

要遵循的步骤:

  1. 根据一个或多个空格分割整个字符串。
  2. 迭代数组中的所有字符串,直到长度为 1。
  3. 从第 (i) 和 (i+1) 位置一次从数组中获取两个字符串
  4. 根据正斜杠拆分两个字符串
  5. 迭代两个数组,然后用正斜杠连接单词
  6. 添加列表中的所有单词。

示例代码:

String str = "Nimal read/write book/newspaper from his pen.";

ArrayList<String> wordArrayList = new ArrayList<String>();
String[] array = str.split("\\s+"); // split based on one or more space
for (int i = 0; i < array.length - 1; i++) {
    String s1 = array[i];
    String s2 = array[i + 1];

    String[] a1 = s1.split("/"); //split based on forward slash
    String[] b1 = s2.split("/"); //split based on forward slash
    for (String a : a1) {
        for (String b : b1) {
            String word = a + "/" + b;
            wordArrayList.add(word);
            System.out.println(word);
        }
    }
}

输出:

Nimal/read
Nimal/write
read/book
read/newspaper
write/book
write/newspaper
book/from
newspaper/from
from/his
his/pen.

【讨论】:

    猜你喜欢
    • 2019-11-05
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 2014-10-21
    • 2017-10-24
    • 2020-04-05
    相关资源
    最近更新 更多