在 2 个字符的分隔符上拆分 java 中的字符串

Splitting string in java on a 2 character delimeter

我有一个格式为 first<-0i<-length 的字符串,其中使用 <- 而不是赋值运算符。

我想把它分成 3 个部分,即左侧、运算符和右侧。

然后在标记化之后存储所有 3 个部分。

问题不在于存储分隔符,我已经通过在构造函数中传递第三个参数 true 解决了这个问题。

问题是 StringTokenizer 仅在分隔符长度为 1 个字符时有效。有解决办法吗?

    StringTokenizer tokens= new StringTokenizer("first<-0", "<-", true);

您可以按照以下方式进行:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {

        String str = "first<-0";

        // Without using regex
        String[] parts = new String[3];
        parts[0] = str.substring(0, str.indexOf("<-"));
        parts[1] = "<-";
        parts[2] = str.substring(str.indexOf("<-") + 2);
        System.out.println(Arrays.toString(parts));

        // Using regex
        String[] p = str.split("((?<=<-)|(?=<-))");
        System.out.println(Arrays.toString(p));
    }
}

输出:

[first, <-, 0]
[first, <-, 0]

如有任何疑问,请随时发表评论。