Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按空格拆分字符串并忽略句点_Java_String_String Split - Fatal编程技术网

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

Java 按空格拆分字符串并忽略句点,java,string,string-split,Java,String,String Split,我试图将字符串作为输入,按空格字符分割,以便将单词存储在数组中,然后使用这些单词与其他单词进行比较。问题是,我希望在拆分期间忽略句点,因为它们所比较的单词永远不会包含句点 例如: String testString = "This. is. a. test. string."; String[] test = testString.split(" "); for (int i = 0; i < test.length; i++) { System.out.println(test

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

例如:

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
在拆分期间,我如何可以忽略该期间?

如何

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

或多个句点(和省略号)

怎么样

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

或多个句点(和省略号)


替换被拆分字符串内的点
replace(“.”,“”)

String testString=“This.is.a.test.String。”;
String[]test=testString.split(“”);
对于(int i=0;i
替换拆分字符串内的点
替换(“.”,”)

String testString=“This.is.a.test.String。”;
String[]test=testString.split(“”);
对于(int i=0;i
输入总是带有这样的句点吗?输入总是带有这样的句点吗?为什么不在之前删除它们呢?这有区别吗?这会将“.”放在字符串数组中。为什么不先删除它们呢?这有区别吗?这会将“.”放在字符串数组中。使用\s*检查多个空格。虽然这在示例输入中不再是错误的,但它只是一个示例。OP问:“我希望在拆分期间忽略周期。”我不认为这符合该要求。例如,一个带省略号的句子怎么样…@mbroshi你就不能在
后面加一个
+
?我想这已经成为一个近乎犹太式的讨论了。我将删除我的否决票,让OP自己解决问题。@user2310289感谢更新的答案和正则表达式的解释。使用\s*检查多个空格。虽然示例输入不再错误,但它只是一个示例。OP问:“我希望在拆分期间忽略周期。”我不认为这符合该要求。例如,一个带省略号的句子怎么样…@mbroshi你就不能在
后面加一个
+
?我想这已经成为一个近乎犹太式的讨论了。我将删除我的否决票,让OP自己解决问题。@user2310289感谢更新的答案和正则表达式的解释。
String[] test = testString.split("\\.+\\s*");
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(".",""));
      }}
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);
        }
    }
}
String[] test = testString.split("\\.\\s*");