Java StringTokenizer和字符串拆分-在特殊字符上拆分

Java StringTokenizer和字符串拆分-在特殊字符上拆分,java,string,split,stringtokenizer,Java,String,Split,Stringtokenizer,我有字符串: 2 |家用电器| 0 | 0 | | | | | 0 || 我想分离上面字符串中由|分隔的所有标记 我试图用 StuttotoKeisher 来标记它,但是它不认为空间是一个标记。 另外,我尝试了split(“|”),但它将上述字符串的每个字符作为返回字符串数组中的元素 我该怎么办?试试看 string.split("\\|"); \是一个特殊字符,必须与转义字符\对齐。在Java中,\写为\ 这是因为将正则表达式作为参数 在正则表达式中,像,|,()等特殊字符必须转义。否则,J

我有字符串:

2 |家用电器| 0 | 0 | | | | | 0 ||

我想分离上面字符串中由
|
分隔的所有标记

我试图用<代码> StuttotoKeisher 来标记它,但是它不认为空间是一个标记。

另外,我尝试了
split(“|”)
,但它将上述字符串的每个字符作为返回字符串数组中的元素

我该怎么办?

试试看

string.split("\\|");
\
是一个特殊字符,必须与转义字符
\
对齐。在Java中,
\
写为
\

这是因为将正则表达式作为参数

在正则表达式中,像
|
)等特殊字符必须转义。否则,Java会认为您实际使用的是特殊字符(例如
意味着或)。

试试看

string.split("\\|");
是一个特殊字符,必须与转义字符
\
对齐。在Java中
\
写为
\

这是因为将正则表达式作为参数


在正则表达式中,像
|
)等特殊字符必须转义。否则,Java会认为您实际使用的是特殊字符(例如
表示或)。

请尝试Scanner而不是StringTokenizer

    Scanner sc = new Scanner(str);
    sc.useDelimiter("\\|");
    while(sc.hasNext()) {
        String e = sc.next();
    }

尝试Scanner而不是StringTokenizer

    Scanner sc = new Scanner(str);
    sc.useDelimiter("\\|");
    while(sc.hasNext()) {
        String e = sc.next();
    }

另一种方法是
string.split([|]])
。另一种方法是
string.split([|]])
。“StringTokenizer是一个出于兼容性原因保留的旧类,尽管新代码中不鼓励使用它。建议寻求此功能的任何人使用String的拆分方法或java.util.regex包。”并且接受帮助您的答案StringTokenizer是一个遗留类,尽管新代码中不鼓励使用它,但出于兼容性原因保留了它。建议寻求此功能的任何人改用String的拆分方法或java.util.regex包。”并接受帮助您的答案。。。