按空格拆分字符串并忽略句点

时间:2014-02-27 03:54:07

标签: java string string-split

我正在尝试接受String作为输入,用空格字符将其拆分以便将单词存储在数组中,然后使用这些单词与其他单词进行比较。问题是我希望在分割期间忽略句点,因为它们被比较的单词将永远不会包含句号。

例如:

String testString = "This. is. a. test. string.";
String[] test = testString.split(" ");

for (int i = 0; i < test.length; i++) {
    System.out.println(test[i]);
}

这将打印出来:

This.
is.
a.
test.
string.

相反,我希望打印出来:

This
is
a
test
string

如何忽略分割期间的时间段?

4 个答案:

答案 0 :(得分:5)

怎么样

String[] test = testString.split("\\.[ ]*");

String[] test = testString.split("\\.\\s*");

或超过一个时期(和省略号)

String[] test = testString.split("\\.+\\s*");

答案 1 :(得分:1)

String[] test = testString.split("\\.\\s*");

答案 2 :(得分:0)

替换拆分字符串replace(".","");

内的点
String testString = "This. is. a. test. string.";
      String[] test = testString.split(" ");

      for (int i = 0; i < test.length; i++) {
          System.out.println(test[i].replace(".",""));
      }}

答案 3 :(得分:0)

public class Main { 
    public static void main(String[] args) {
        String st = "This. is. a. test. string."";
        String[] tokens = st.split(".(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
        for(String t : tokens) {
            System.out.println("> "+t);
        }
    }
}