我以字符串格式提供以下数据。
String value="/SOKS/
/SREF/12345-1
/PREF/23456-1
/CREF/123"
预期值:
SOKS setEvent("SOKS")
SREF setRef("12345-1")
PREF setRef1("23456-1")
CREF setRef2("123")
String value="/SOKS/
/SREF/
/PREF/23456-1
/CREF/
预期值:
SOKS1 setEvent("SOKS1")
SREF setRef("")
PREF setRef1("23456-1")
CREF setRef2("")
String value="/SOKS2/
/SREF/
/PREF/23456-1
预期值:
SOKS2 setEvent("SOKS2")
SREF setRef("")
PREF setRef1("23456-1")
CREF setRef2("")
我想拆分上面的字符串并将所有值设置为POJO。在上面的字符串/ SOKS /是动态的,值可以是任何值。
所以我想在value(SOKS)
方法中设置此setEvent(string)
。对于/SREF/
(这是静态的),我想将值12345-1存储到setSref(string)
。
如何解决这个问题?
答案 0 :(得分:2)
使用String.split()方法拆分字符串(在/上),然后检索所需的值。 其他选项是获取子字符串,从/的最后一个索引开始直到字符串结尾。
答案 1 :(得分:0)
您可以使用StringTokenizer。
答案 2 :(得分:0)
您可以使用:
String value="/SOKS/\r\n/SREF/12345-1\r\n/PREF/23456-1\r\n/CREF/123";
String[] arr = value.split("\\r?\\n?/");
然后:
setEvent(arr[1]); // SOKS
if (arr[3].equals("SREF"))
setSref(arr[4]); // 12345-1
答案 3 :(得分:0)
使用String.split()
或StringTokenizer分割字符串。然后根据功能使用switch case设置相应的值。
喜欢:
switch( str){
case "SREF":
setSref(valuse);
break;
...
}