Java 使用分隔符拆分包含具有相同分隔符的其他字符的字符串

Java 使用分隔符拆分包含具有相同分隔符的其他字符的字符串,java,regex,split,stringtokenizer,Java,Regex,Split,Stringtokenizer,我正在尝试拆分一个字符串,比如:“@WWP2-@POLUXDATAWWP3”-TTTTTW@K826“提取@WWP2-@POLUXDATAWWP3-ttttt w和826字符串 执行代码段时: String expression = "@WWP2-@POLUXDATAWWP3-TTTTTW@K826"; StringTokenizer tokenizer = new StringTokenizer(expression, "@K"); if (tokeni

我正在尝试拆分一个字符串,比如:“@WWP2-@POLUXDATAWWP3”-TTTTTW@K826“提取@WWP2-@POLUXDATAWWP3-ttttt w和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-TTTTT W
826

我得到:

WWP2-
POLUXDATAWWP3-TTTTT W
826

你知道如何得到精确的两个字符串吗

    String[] str = expression.split("@K");
    System.out.println(Arrays.toString(str));
试试字符串#split(“@K”)

输出:

[@WWP2-@POLUXDATAWWP3-TTTTTW, 826]
试试字符串#split(“@K”)

输出:

[@WWP2-@POLUXDATAWWP3-TTTTTW, 826]
String expression=“@WWP2-@POLUXDATAWWP3-TTTTTW@K826";
String[]strArr=expression.split(“@K”);
对于(int i=0;i
StringTokenizer
在分隔符字符串中的所有单个字符上拆分字符串,即在
@
K

另请参见。

String expression=“@WWP2-@POLUXDATAWWP3-TTTTTW@K826";
String[]strArr=expression.split(“@K”);
对于(int i=0;i
StringTokenizer
在分隔符字符串中的所有单个字符上拆分字符串,即在
@
K


另请参见。

StringTokenizer
将使用给定的分隔符参数作为一组字符(如果它包含多个字符)。在您的情况下,它将按
@
K
分割字符串,而
K
不一定要跟在
@

StringTokenizer
后面,如果给定的分隔符参数包含多个字符,它将使用一组字符。在您的情况下,它将按
@
K
拆分字符串,而
K
不一定要跟在
@

后面,所以最后,您要按
@K
拆分,并删除剩余的
@
,不是吗?所以最后,您要按
@K
拆分,并删除剩余的
,你不觉得吗?