将包含分隔符的字符串拆分为包含具有相同分隔符的其他字符的字符串

时间:2013-02-21 16:10:34

标签: java regex split stringtokenizer

我正在尝试分割一个字符串:“@ WWP2- @ POLUXDATAWWP3-TTTTTW @ K826”来提取@ WWP2- @ POLUXDATAWWP3-TTTTTW和826个字符串 执行代码段时:

String expression = "@WWP2-@POLUXDATAWWP3-TTTTTW@K826";
        StringTokenizer tokenizer = new StringTokenizer(expression, "@K");
            if (tokenizer.countTokens() > 0) {
                while (tokenizer.hasMoreTokens()) {
                    System.out.println(tokenizer.nextToken());
                }
            }

期待结果

WWP2-POLUXDATAWWP3-TTTTTW
826

我得到了:

WWP2-
POLUXDATAWWP3-TTTTTW
826

关于如何获得确切的两个字符串的任何想法?

3 个答案:

答案 0 :(得分:4)

    String[] str = expression.split("@K");
    System.out.println(Arrays.toString(str));

尝试String#split(“@ K”);

输出:

[@WWP2-@POLUXDATAWWP3-TTTTTW, 826]

答案 1 :(得分:0)

String expression = "@WWP2-@POLUXDATAWWP3-TTTTTW@K826";

String [] strArr = expression.split("@K");

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

StringTokenizer在分隔符字符串中的所有单个字符上拆分字符串,即在@ K上。

另见Why is StringTokenizer deprecated?

答案 2 :(得分:0)

如果

StringTokenizer包含多个char,它将使用给定的delimiter参数作为一组chars。在您的情况下,它会将您的字符串分为@K,而K不一定必须跟@