在2个字符的delimeter上用java拆分字符串



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

我想把它分成三部分,即左侧、操作员和右侧。

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

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

问题是StringTokenizer仅在delimeter为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]

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

最新更新