如何根据条件拆分字符串
How to split a String based on conditions
您好,我需要根据条件拆分 java 中的字符串
字符串可能有两种格式
1.如果格式是这样WG/A/0-5那么我需要检查最后一部分是否以“0-”开头然后我需要提取中间部分(即:"A")
2.The 第二种格式是 WG/A/3-3 这里是 3-3 ie:other 比 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);
使用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
也许是这样的:
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 charAt, substring
应该可以解决您的问题:
String myValue = input.charAt(5) == '0' ? input.substring(3, 4) : input
.substring(3, 6);
您好,我需要根据条件拆分 java 中的字符串 字符串可能有两种格式 1.如果格式是这样WG/A/0-5那么我需要检查最后一部分是否以“0-”开头然后我需要提取中间部分(即:"A") 2.The 第二种格式是 WG/A/3-3 这里是 3-3 ie:other 比 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);
使用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
也许是这样的:
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 charAt, substring
应该可以解决您的问题:
String myValue = input.charAt(5) == '0' ? input.substring(3, 4) : input
.substring(3, 6);