如何根据条件拆分String

时间:2015-07-16 10:53:50

标签: java

您好我需要根据条件在java中拆分String String可能有两种格式 1.如果格式是这样的WG / A / 0-5那么我需要检查最后一部分是否以“0-”开头然后我需要提取中间部分(即:“A”) 2.第二种格式是WG / A / 3-3,这里是3-3即:除了0)这里我需要提取(A / 3)。

我试过这样的

String parent = StringPool.BLANK;
if(wgCode.split(StringPool.FORWARD_SLASH)[2].startsWith("0-")) {
    parent = wgCode.split(StringPool.FORWARD_SLASH)[1];
} else if(!wgCode.split(StringPool.FORWARD_SLASH)[2].startsWith("0-")) {
    parent = wgCode.split(StringPool.FORWARD_SLASH)[1]+"/"+wgCode.split(StringPool.FORWARD_SLASH)[2].split("-")[0];
}
_log.info("parent parent"+parent);

4 个答案:

答案 0 :(得分:1)

使用正则表达式和String.contains检查您的条件,String.indexOfString.substring分割您的字符串。

以下方法适用于您的示例:

public String getString(String input)
{
    if(input.matches(".*/.*/0.*"))
    {
        String yourString = input.substring(input.indexOf("/")+1);
        yourString = yourString.substring(0, yourString.indexOf("/"));
        return yourString;
    }
    else
    {
        String yourString = input.substring(input.indexOf("/")+1);
        yourString = yourString.substring(0, yourString.indexOf("/")+2);
        return yourString;
    }
}

使用正则表达式.*/.*/0.*,您会在第二个0之后找到以/开头的所有字符串。

答案 1 :(得分:0)

使用String#contains(String)检查0-是否存在。

String str="WG/A/0-5";
String str1="WG/A/3-3";
if(str.contains("0-"))
System.out.println(str.substring(str.indexOf("/")+1,str.indexOf("/",str.indexOf("/") + 1)));//A
if(!str1.contains("0-"))
System.out.println(str1.substring(str1.indexOf("/")+1,str1.indexOf("-")));//A/3

答案 2 :(得分:0)

也许是这样的:

String input = "WG/A/0-5";
String[] parts = input.split("/");

if( parts[2].charAt(0) == '0' ){
......

答案 3 :(得分:0)

String charAt, substring应该可以解决您的问题:

String myValue = input.charAt(5) == '0' ? input.substring(3, 4) : input
        .substring(3, 6);