如何在java中拆分字符串

时间:2013-04-22 10:22:57

标签: java

我以字符串格式提供以下数据。

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 个答案:

答案 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

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

答案 3 :(得分:0)

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

喜欢:

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

    ...
}