- 最近有个需求,感觉挺有必要记录,并且分享一下,就是将一个字符串进行分割,字符串分为两部分,一个是A,另一个是B,A和B几乎一样,分割的时候需要将它两中间的一部分删除,删除的时候根据一个目标值并且只删除这个目标值前面的,后面的保留。代码如下:
/**
* versionNumber作为s28的分割值,假如只要1.1.2后面的值前面的不要(不包含1.1.2),就会变成[{version=["1.1.3","1.1.4","1.1.5","1.1.6"], A=1}, {version=["1.1.3","1.1.4","1.1.5","1.1.6"], B=2}]
* @param args
*/
public static void main(String[] args) {
String targetValue = "1.1.2";
String s28 = "[{version=[\"1.1.1\",\"1.1.2\",\"1.1.3\",\"1.1.4\",\"1.1.5\",\"1.1.6\"], A=1}, {version=[\"1.1.1\",\"1.1.2\",\"1.1.3\",\"1.1.4\",\"1.1.5\",\"1.1.6\"], B=2}]";
System.out.println(s28);
int i = s28.indexOf(targetValue);
System.out.println("b在a字符串第一次出现的位置:"+i);
int length = targetValue.length();
System.out.println("b的长度"+length);
//加2是因为引号和逗号
int j = i+length+2;
String removeCharAt = removeCharAtOne(s28, j);
System.out.println("第一次拆剪:"+removeCharAt);
int i1 = removeCharAt.indexOf(targetValue);
System.out.println("b在a字符串第二次出现的位置:"+i1);
System.out.println("b的长度"+length);
//加2是因为引号和逗号
int j2 = i1+length+2;
//分割第二个platformCode
String ss = "{version=[";
int i2 = removeCharAt.lastIndexOf(ss);
int length1 = ss.length();
int i3 = i2 + length1;
System.out.println(removeCharAtTwo(removeCharAt,i3,j2));
}
public static String removeCharAtOne(String s, int j) {
return s.substring(0, 11)+ s.substring(j);// 使用substring()方法截取0-11之间的字符串和j之后的字符串
}
public static String removeCharAtTwo(String s, int i3, int j) {
return s.substring(0, i3)+ s.substring(j);// 使用substring()方法截取0-i13之间的字符串和j之后的字符串
}
执行结果如下:
[{version=["1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6"], A=1}, {version=["1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6"], B=2}]
b在a字符串第一次出现的位置:20
b的长度5
第一次拆剪:[{version=["1.1.3","1.1.4","1.1.5","1.1.6"], A=1}, {version=["1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6"], B=2}]
b在a字符串第二次出现的位置:70
b的长度5
[{version=["1.1.3","1.1.4","1.1.5","1.1.6"], A=1}, {version=["1.1.3","1.1.4","1.1.5","1.1.6"], B=2}]
总结:
以上就是实现字符串分割的代码以及执行结果。