package string;
/**
*
* @author congpeixue
* @version 1.0
*/
public class StringSplit {
/*
* 如果存在正则表达式匹配此字符串中最末位或最前位的情况,则在原有原有拆分字符串(末位或开始位)的基础上加“”。
*/
public static void main(String[] args) {
String str1 = "catcat";
/**************************/
System.out.println(str1.split("a", 2).length);
System.out.println(str1.split("a", -1).length);
// 只去除末位的空字符串
System.out.println(str1.split("a", 0).length);
/**************************/
System.out.println(str1.split("t", 2).length);
System.out.println(str1.split("t", -1).length);
System.out.println("明细:");
for(Object o : str1.split("t", -1)){
System.out.println(o.toString());
}
System.out.println("结束");
System.out.println(str1.split("t", 0).length);
/**************************/
System.out.println(str1.split("c", 2).length);
System.out.println(str1.split("c", -1).length);
System.out.println("明细:");
for(Object o : str1.split("c", -1)){
System.out.println(o.toString());
}
System.out.println("结束");
System.out.println(str1.split("c", 0).length);
}
}
String[] split(String regex, int limit)
limit参数控制模式应用的次数,因此影响所得数组的长度,如果该限制n大于0,则最多应用n-1,所得数组的长度最大为n。
如果n为非负,那么模式将应用尽可能多的次数, 数组可以是任意长度。
如果n为0, 那么模式将应用尽可能多的次数,数组可以是任意长度,并且结尾空字符串将被丢弃。
使用举例:
public String getSqlString(String sql, List parameters) {
StringBuilder sqlbuf = null;
if (parameters != null) {
sqlbuf = new StringBuilder();
String sqls[] = sql.split("\\?", -1);
for (int i = 0; i < parameters.size(); i++) {
Object parameter = parameters.get(i);
if (parameter == null) {
sqlbuf.append(sqls[i] + " NULL ");
} else {
sqlbuf.append(sqls[i] + " '" + parameter + "'");
}
}
if (sqls.length > parameters.size()) {
sqlbuf.append(sqls[sqls.length - 1]);
}
} else
return sql;
return sqlbuf.toString();
}