StringTokenizer和String split - 拆分特殊字符

时间:2013-06-17 13:03:42

标签: java string split stringtokenizer

我有字符串:

  

2 | HOME ELECTRONICS | | 0 | 0 | | | | | 0 | |

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

我尝试使用StringTokenizer对其进行标记,但它不会将空格视为令牌。

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

我该怎么办?

2 个答案:

答案 0 :(得分:8)

尝试

string.split("\\|");

|是一个特殊字符,必须使用转义字符\进行处理。在Java \中写为\\

这是因为String#split()正则表达式作为参数。

正则表达式中,必须转发.|(等特殊字符。否则,Java会认为您实际上正在使用特殊字符(例如|表示 OR )。

答案 1 :(得分:0)

尝试使用Scanner而不是StringTokenizer

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