-2

我有以下字符串格式的数据。

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")

2:

String value="/SOKS/
    /SREF/
    /PREF/23456-1
    /CREF/

预期值:

SOKS1    setEvent("SOKS1")
SREF     setRef("")
PREF     setRef1("23456-1")
CREF     setRef2("")

3:

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).

如何解决这个问题?

4

4 回答 4

2

使用 String.split() 方法拆分字符串(在 / 上),然后检索所需的值。其他选项是获取子字符串,从 / 的最后一个索引开始,直到字符串的末尾。

于 2013-04-22T10:24:13.463 回答
0

您可以为此使用StringTokenizer 。

于 2013-04-22T10:25:40.470 回答
0

使用String.split()StringTokenizer来分割你的字符串。然后使用switch case根据那里的功能设置相应的值。

喜欢:

switch( str){
 case "SREF":
     setSref(valuse);
     break;

    ...
}
于 2013-04-22T10:29:59.127 回答
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

现场演示:http: //ideone.com/VlcNrB

于 2013-04-22T10:28:57.030 回答