String str1 = "404071|404013|404072";
String str2 = "405|406|407";
String str3 = "22|33|44";
上面字符串都是以“|”分隔,要求:分析str1字符串,如果碰到里面存在404013的时候,则把对应的406,33取出来
取出来放在一个string里面去
String str2 = "405|406|407";
String str3 = "22|33|44";
上面字符串都是以“|”分隔,要求:分析str1字符串,如果碰到里面存在404013的时候,则把对应的406,33取出来
取出来放在一个string里面去
public static void main(String args[]){
String retStr = "";
String str1 = "404071|404013|404072";
String str2 = "405|406|407";
String str3 = "22|33|44";
String[] arr1 = str1.split("\\|");
if(arr1[1].equals("404013")){
retStr = str2.split("\\|")[1]+","+str3.split("\\|")[1];
}
System.out.println(retStr);
}
或者用正则表达式 Match 去分割字串,然后比对 一样。
String str1 = "404071|404013|404072";
String str2 = "405|406|407";
String str3 = "22|33|44";
String[] strv1 = str1.split("\\|");
String[] strv2 = str2.split("\\|");
String[] strv3 = str3.split("\\|");
for (int i=0; i<strv1.length; i++) {
if ("404013".equals(strv1[i])) {
return strv2[i]+strv3[i];
}
}
/**
* 自定义字符串分割函数,返回数组 -- by PanJun
*
* @param s
* 待分解串
* @param token
* 分解标识
* @return
*/
public static String[] split(String s, String token) {
if (s == null)
return null;
if (token == null || s.length() == 0)
return new String[] { s }; int size = 0;
String[] result = new String[4];
while (s.length() > 0) {
int index = s.indexOf(token);
String splitOne = s;
if (index > -1) {
splitOne = s.substring(0, index);
s = s.substring(index + token.length());
} else {
s = "";
} if (size >= result.length) {
String[] tmp = new String[result.length * 2];
System.arraycopy(result, 0, tmp, 0, result.length);
result = tmp;
} if (splitOne.length() > 0) {
result[size++] = splitOne;
}
} String[] tmp = result;
result = new String[size];
System.arraycopy(tmp, 0, result, 0, size);
return result;
} public static void main(String args[]) {
String str1 = "404071|404013|404072";
String str2 = "405|406|407";
String str3 = "22|33|44";
String[] arr1 = str1.split("\\|");
String[] arr2 = str2.split("\\|");
String[] arr3 = str3.split("\\|"); String str2Part = null;
String str3Part = null;
for (int i = 0; i < arr1.length; i++) {
if (arr1[i].equals("404013")) {
if (arr2.length > i)
str2Part = arr2[i]; if (arr3.length > i)
str3Part = arr3[i];
}
}
System.out.println(str2Part + ", " + str3Part);
}
String[] split(String src, String reg) {
List l = new ArrayList();
if (src.indexOf(reg)==0) {
l.add("");
src=src.substring(1);
}
while ((int idx = src.indexOf(reg))>-1) {
l.add(src.substring(0,idx-1));
src = src.substring(idx+1);
}
l.add(src);
String[] r = new String[l.size()];
for (int i=0; i<l.size(); i++) {
r[i] = (String)l.get(i);
}
return r;
}
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
String str1 = "404071|404013|404072";
String str2 = "405|406|407";
String str3 = "22|33|44";
String[] s1 = split(str1);
String[] s2 = split(str2);
String[] s3 = split(str3);
int i = -1;
for(i=0; i<s1.length; i++) {
if(s1[i].equals("404013")) {
break;
}
}
System.out.println(s1[i]);
System.out.println(s2[i]);
System.out.println(s3[i]);
}
//以“|”分割字符串,返回分割后的字符串数组
private static String[] split(String str) {
StringTokenizer st = new StringTokenizer(str, "|");
String[] temp = new String[str.indexOf("|") + 1];
int index = 0;
while(st.hasMoreElements()) {
temp[index ++] = st.nextToken();
}
return temp;
}
}
* 自定义字符串分割函数,返回数组 -- by PanJun
*
* @param s
* 待分解串
* @param token
* 分解标识
* @return
*/
public static String[] split(String s, String token) {
if (s == null)
return null;
if (token == null || s.length() == 0)
return new String[] { s }; int size = 0;
String[] result = new String[4];
while (s.length() > 0) {
int index = s.indexOf(token);
String splitOne = s;
if (index > -1) {
splitOne = s.substring(0, index);
s = s.substring(index + token.length());
} else {
s = "";
} if (size >= result.length) {
String[] tmp = new String[result.length * 2];
System.arraycopy(result, 0, tmp, 0, result.length);
result = tmp;
} if (splitOne.length() > 0) {
result[size++] = splitOne;
}
} String[] tmp = result;
result = new String[size];
System.arraycopy(tmp, 0, result, 0, size);
return result;
} public static void main(String args[]) {
String str1 = "404071|404013|404072";
String str2 = "405|406|407";
String str3 = "22|33|44";
String[] arr1 = split(str1, "|");// modified
String[] arr2 = split(str2, "|");// modified
String[] arr3 = split(str3, "|");// modified String str2Part = null;
String str3Part = null;
for (int i = 0; i < arr1.length; i++) {
if (arr1[i].equals("404013")) {
if (arr2.length > i)
str2Part = arr2[i]; if (arr3.length > i)
str3Part = arr3[i];
}
} System.out.println(str2Part + ", " + str3Part);
}
public class Test {
public static void main(String[] args) {
String str1 = "404071|404013|404072";
String str2 = "405|406|407";
String str3 = "22|33|44"; String[] s1 = split(str1, "|");
String[] s2 = split(str2, "|");
String[] s3 = split(str3, "|");
for (int i = 0; i < s1.length; i++) {
if (s1[i].equals("404013")) {
System.out.println(s1[i]);
System.out.println(s2[i]);
System.out.println(s3[i]);
break;
}
} } private static String[] split(String str, String delim) {
StringTokenizer st = new StringTokenizer(str, delim);
String[] temp = new String[st.countTokens()];
int index = 0;
while (st.hasMoreTokens()) {
temp[index++] = st.nextToken();
}
return temp;
}
}把11楼的代码改了下
String str1 = "404071|404013|404072";
String str2 = "405|406|407";
String str3 = "22|33|44";
String [] myStr1 = split(str1,"|");
String [] myStr2 = split(str2,"|");
String [] myStr3 = split(str3,"|");
StringBuilder sb = new StringBuilder();
for(int i=0;i<myStr1.length;i++){
if(myStr1[i].equals("404013")){
sb.append(myStr2[i]).append(myStr3[i]);
break;
}
}
System.out.println(sb.toString());
}
public static String [] split(String str,String reg){
if(str==null){
return null;
}
if(reg==null){
return new String []{str};
}
List<Integer> list = new ArrayList<Integer>();
char [] myChar = str.toCharArray();
for(int i =0 ; i < str.length();i++){
if(reg.equalsIgnoreCase(Character.toString(myChar[i]))){
list.add(i);
}
}
String [] myStr = new String[list.size()+1];
for(int i=0;i<=list.size();i++){
if(i==0){
myStr[i]=str.substring(0, list.get(i));
}else if(i==list.size()){
int m = list.get(i-1);
myStr[i]=str.substring(m+1,str.length());
}else{
myStr[i]=str.substring(list.get(i-1)+1, list.get(i));
}
}
return myStr; }