参数
AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α
或者是:
AND_ThalassemiaGeneTest_TGTAlphaBehind__ _SEA想要把参数拆分为:AND ThalassemiaGeneTest TGTAlphaBehind _3.7α
AND ThalassemiaGeneTest TGTAlphaBehind _ _SEA
AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α
或者是:
AND_ThalassemiaGeneTest_TGTAlphaBehind__ _SEA想要把参数拆分为:AND ThalassemiaGeneTest TGTAlphaBehind _3.7α
AND ThalassemiaGeneTest TGTAlphaBehind _ _SEA
System.out.println("AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α".replaceFirst("_ThalassemiaGeneTest_TGTAlphaBehind_"," ThalassemiaGeneTest TGTAlphaBehind "));
System.out.println("AND_ThalassemiaGeneTest_TGTAlphaBehind__ _SEA".replaceFirst("_ThalassemiaGeneTest_TGTAlphaBehind_"," ThalassemiaGeneTest TGTAlphaBehind "));
从中得到:
连接符:arr[0]
表名:arr[1]
字段名:arr[2]
字段值:arr[3]
用于数据库查询的
String resulString = "AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α".replaceFirst("_ThalassemiaGeneTest_TGTAlphaBehind_"," ThalassemiaGeneTest TGTAlphaBehind ");
;;
String arr[] = resulString.split(" ");
for(String s : arr){
System.out.println(s);
}
上面的两个参数要使用同一个方法,进行拆分,,,,不能一个参数,写一个拆分方法,用户可以输入任意形式的字符串,传过来的参数还可能是 AND_ThalassemiaGeneTest_TGTAlphaBehind_BJFKD
或者AND_ThalassemiaGeneTest_TGTAlphaBehind_8Jdld
等等,
要使用一个通用的方法,进行拆分,
用正则for examplepublic static void getNum(String str) {
System.out.println(str.replaceAll("[a-zA-Z0-9]_", " "));
for (String s : str.split("[a-zA-Z0-9]_")) {
System.out.println(s);
}
}
你给多几组数据还是不够特殊,或者说你没考虑全面。你那几组数据压根不需用正则。使用indexOf() 和 SubString() 都可以对付了
其中8J_dld是用户的输入的值,
这样正则表达式不通用了啊
import java.util.Arrays;/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2011-9-30
* Time: 13:25:53
* To change this template use File | Settings | File Templates.
*/
public class StringHandler {
public static String[] splitYourStr(String str){
String[] yourWant=new String[4];
String connect="_";
int a=str.indexOf(connect);
int b=str.indexOf(connect,a+1);
int c=str.indexOf(connect,b+1); yourWant[0]=str.substring(0,a);
yourWant[1]=str.substring(a+1,b);
yourWant[2]=str.substring(b+1,c);
yourWant[3]=str.substring(c+1); System.out.println(Arrays.toString(yourWant));
return yourWant;
}
public static void main(String[] args){
String str="AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α";
// String str="AND_ThalassemiaGeneTest_TGTAlphaBehind__ _SEA";
String[] r=splitYourStr(str);
System.out.println(Arrays.toString(r));
}
}
String str="AND_ThalassemiaGeneTest_TGTAlphaBehind_BJFKD";
String s1=str.substring(0,str.lastIndexOf("_"));
String s2=str.substring(str.lastIndexOf("_")+1,str.length());
String[] arr=s1.split("_");
arr=Arrays.copyOf(arr,arr.length+1);
arr[arr.length]=s2;
for(String s:arr){
System.out.println(s);
}
static String[] getResult(String src){
String[] result = new String[4];
int pre = 0;
for(int i=0; i<3; i++){
int index = src.indexOf("_",pre);
result[i] = src.substring(pre,index);
pre = index+1;
}
result[3] = src.substring(pre);
return result;
}