我有一个类似于下面的字符串 “ OPR_NAME:CODE =值,:DESC =值,:NUMBER =值,:INITIATOR =值,:RESP”
我正在使用StringTokenizer将字符串基于delimiter(,:)拆分为令牌,我需要的值为 CODE,DESC和NUMBER。 有人可以告诉我如何实现吗?这些值可能以随机顺序出现在我的字符串中 例如,我的字符串也可能如下所示: “ OPR_NAME:DESC =值,:NUMBER =值,:CODE =值,:INITIATOR =值,:RESP” ,它仍然应该能够获取值。
我在下面做了将字符串拆分为令牌的操作
StringTokenizer st = new StringTokenizer(str,",:");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
但是不确定如何存储这些令牌以获取如上所述的3个字段的值。
谢谢!!
答案 0 :(得分:0)
好的,我的意思是,检测“ =”在哪里,然后应用子字符串以获得所需的值。
粗略的例子
System.out.println(st.nextToken().substring(st.nextToken().indexOf('=')+1,st.nextToken().length()));
改为使用split:
String[] parts = X.split(",:");
for (String x:parts) {
System.out.println(x.substring(x.indexOf('=')+1));
}