在Java中使用多个分隔符拆分字符串时出现不需要的元素

在Java中使用多个分隔符拆分字符串时出现不需要的元素,java,split,Java,Split,我有一个字符串,需要从中删除所有提到的标点和空格。我的代码如下所示: String s = "s[film] fever(normal) curse;"; String[] spart = s.split("[,/?:;\\[\\]\"{}()\\-_+*=|<>!`~@#$%^&\\s+]"); System.out.println("spart[0]: " + spart[0]); System.out.println("spart[1]:

我有一个字符串,需要从中删除所有提到的标点和空格。我的代码如下所示:

    String s = "s[film] fever(normal) curse;";
    String[] spart = s.split("[,/?:;\\[\\]\"{}()\\-_+*=|<>!`~@#$%^&\\s+]");
    System.out.println("spart[0]: " + spart[0]);
    System.out.println("spart[1]: " + spart[1]);
    System.out.println("spart[2]: " + spart[2]);
    System.out.println("spart[3]: " + spart[3]);
    System.out.println("spart[4]: " + spart[4]);
我期望的输出是:

spart[0]: s
spart[1]: film
spart[2]:
spart[3]: fever
spart[4]: normal
spart[0]: s
spart[1]: film
spart[2]: fever
spart[3]: normal
spart[4]: curse
试试这个:

public static void main(String[] args) {
    String s = "s[film] fever(normal) curse;";
    String[] spart = s.split("[,/?:;\\[\\]\"{}()\\-_+*=|<>!`~@#$%^&\\s]+");
    for (String string : spart) {
        System.out.println("'"+string+"'");
    }
}
试试这个:

public static void main(String[] args) {
    String s = "s[film] fever(normal) curse;";
    String[] spart = s.split("[,/?:;\\[\\]\"{}()\\-_+*=|<>!`~@#$%^&\\s]+");
    for (String string : spart) {
        System.out.println("'"+string+"'");
    }
}

我相信这是因为你有一个空间在那里结束。我认为加号也必须使用转义序列。

我认为这是因为在结尾处有一个for空格。我认为加号也必须使用转义序列。

请发布示例输入和示例输出…也是预期的输出。当您说空白时,您是指诸如“”之类的空格还是完全不象“”?你想用那个正则表达式实现什么?@svasa:我已经编辑了我的问题。请发布示例输入和示例输出…以及预期的输出。当你说空白时,你是指像“”这样的空白还是完全不像“”?你想用那个正则表达式实现什么?@svasa:我已经编辑了我的问题。
String spart = s.replaceAll( "\\W", " " ).split(" +");