Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据条件拆分字符串_Java - Fatal编程技术网

Java 如何根据条件拆分字符串

Java 如何根据条件拆分字符串,java,Java,嗨,我需要根据条件在java中拆分一个字符串 字符串可能有两种格式 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 = wg

嗨,我需要根据条件在java中拆分一个字符串 字符串可能有两种格式 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);
使用StringcontainsString检查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

也许是这样的:

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

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

使用正则表达式和String.contains检查条件,使用String.indexOf和String.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开头的所有字符串

字符串、子字符串应该可以解决您的问题:

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

好的,到目前为止您已经尝试了什么?您的值不是都为true吗?如果字符串总是那么简单,您可以只获取特定位置的字符。然后使用if语句检查数字,并在检查数字是0还是非0后执行适当的操作。但是最好的方法是使用正则表达式——创建一个正则表达式并对照它检查输入。