我有一个格式为first<-0
或i<-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]
如有任何疑问,请随时发表评论。