15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678
这是72个手机号,在界面上以这种逗号(,)分隔的方式传入后台。
我想以70个为一单位进行拆分,拆分后的70个手机号,也是以逗号(,)分隔的方式存入数据库,有什么好方法啊?
我的做法是:
int phoneNums = phonenumber.indexOf(",") == -1 ? 1 : phonenumber.split(",").length;//phonenumber是上这组手机号
String phone[] = phonenumber.split(",");
StringBuffer sb = new StringBuffer();
for(int p=0;p<phone.length;p++){
sb.append(phone[p]);
}
int y = phoneNums/70;
int x = phoneNums%70;
if((phoneNums>70)&&(x!=0)){//大于70个手机号但不是70的整数倍
for(int i=0;i<=y;i++){
String num = null;
String num1 = null;
if(i!=y){
num1 = sb.toString().substring(i*70,(i+11)*70);
}else{
num1 = sb.toString().substring(sb.length()-x,sb.length());
}
//拆分手机号码
char [] c = num1.toCharArray();
for(int j=0;j<c.length;j++){
num=num+c[j]+",";
}
pstmt.setString(1, num.substring(4, num.length()-1));//这一行是往数据库里存手机号的
出现的问题是:存入数据的手机号是以一个数字进行分隔的,如1,5,0,1,2,3,4,5,6,7,8
请问:代码应该怎么写啊?
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,
15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678
这是72个手机号,在界面上以这种逗号(,)分隔的方式传入后台。
我想以70个为一单位进行拆分,拆分后的70个手机号,也是以逗号(,)分隔的方式存入数据库,有什么好方法啊?
我的做法是:
int phoneNums = phonenumber.indexOf(",") == -1 ? 1 : phonenumber.split(",").length;//phonenumber是上这组手机号
String phone[] = phonenumber.split(",");
StringBuffer sb = new StringBuffer();
for(int p=0;p<phone.length;p++){
sb.append(phone[p]);
}
int y = phoneNums/70;
int x = phoneNums%70;
if((phoneNums>70)&&(x!=0)){//大于70个手机号但不是70的整数倍
for(int i=0;i<=y;i++){
String num = null;
String num1 = null;
if(i!=y){
num1 = sb.toString().substring(i*70,(i+11)*70);
}else{
num1 = sb.toString().substring(sb.length()-x,sb.length());
}
//拆分手机号码
char [] c = num1.toCharArray();
for(int j=0;j<c.length;j++){
num=num+c[j]+",";
}
pstmt.setString(1, num.substring(4, num.length()-1));//这一行是往数据库里存手机号的
出现的问题是:存入数据的手机号是以一个数字进行分隔的,如1,5,0,1,2,3,4,5,6,7,8
请问:代码应该怎么写啊?
如果长度大于839,subString(0,839)就是你要的第一个串了,依次类推....
public static void main(String[] args) {
String s = "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345679,15012345679 "
+
// 两组 144条,这里是分界点
",15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345679,15012345679 "; String s2 = "";
String[] arr = s.split(",");
System.out.println("总共有: " + arr.length);
int len = 70;
// 循环几个70
int cycletime = arr.length / len;
// 余下的部分
int remLen = arr.length % len;
for (int i = 0; i < cycletime; i++) {
for (int j = 0; j < len; j++) {
s2 += "," + arr[j];
}
s2 = s2.substring(1);
System.out.println("第" + cycletime + "组:");
System.out.println(s2);
// 存入数据库
// ...
}
// 余下部分
System.out.println("余下的:");
s2 = "";
for (int i = 0; i < remLen; i++) {
s2 += "," + arr[i + 70 * cycletime];
}
s2 = s2.substring(1);
System.out.println(s2);
// 存入数据库 }
import java.util.Arrays;
import java.util.List;public class TestMain {
public static void main(String[] args) {
String s = "15012345678,15012345678,15012345678,15012345678";
String[] ss = s.split(",");
List<String> list = Arrays.asList(ss);
for(int i = 0; i < list.size();) {
int start = i;
int end;
if(i + 70 > list.size()) {
end = list.size();
} else {
end = i + 70;
}
List<String> temp = list.subList(start, end);
System.out.println(temp.toString().replaceAll("[\\[\\]]", ""));
i += 70;
}
}
}号码我就不加那么多了,LZ可以测一下,是可以通过的!
public static void main(String[] args) {
String s = "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345679,15012345679 "
+
",15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345679,15012345679 ";
Vector ts = new Vector();
StringTokenizer t = new StringTokenizer( s, ",");
String result="";
while ( t.hasMoreTokens()) { String a=t.nextToken();
if(a!=null || a.length()!=0) ts.addElement( a);
}
for(int i=0; i<ts.size();i++){
if(i%70!=0){
while(tt.hasMoreTokens()){
result+=","+(String)tt.nextToken();
}else{
result=(String)tt.nextToken();}}
}
再看下吧,加个判断就可以了:
public static void main(String[] args) {
String s = "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678"; String s2 = "";
String[] arr = s.split(",");
System.out.println("总共有: " + arr.length);
int len = 70;
// 循环几个70
int cycletime = arr.length / len;
// 余下的部分
int remLen = arr.length % len;
for (int i = 0; i < cycletime; i++) {
for (int j = 0; j < len; j++) {
s2 += "," + arr[j];
}
s2 = s2.substring(1);
System.out.println("第" + (i + 1) + "组:");
System.out.println(s2);
// 存入数据库
// ...
}
// 余下部分
if (remLen > 0) {
System.out.println("余下的:");
s2 = "";
for (int i = 0; i < remLen; i++) {
s2 += "," + arr[i + 70 * cycletime];
}
s2 = s2.substring(1);
System.out.println(s2);
}
// 存入数据库
}
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345070,"
//70
+"15012345679,15012345000,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345140,"
//140
+"15012345678,15012345111,15012345679,15012345111";
Pattern p=Pattern.compile("(\\d{11},?){70}|(\\d{11},?){0,70}");
Matcher m=p.matcher(s);
while(m.find())
System.out.println(m.group());
String s = "13598765432,13598765432,13598765432,13598765432,13598765432,";
int seventyNumberLength = 12*70-1;
for(int i=0;i>(s.length()/seventyNumberLength)+1;i++){
insert(s.substring(i>0?seventyNumberLength*i+1:0,seventyNumberLength*(i+1)-1);
}
不好意思,貌似程序还是有点问题...现在好了.
public static void main(String[] args) {
String s = "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345671,15012345671,15012345670,15012345670"
+ ",15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345679,15012345679,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,15012345678,"
+ "15012345678,15012345678,15012345678,15012345676,15012345676,15012345677,15012345677,15012345679,15012345679 "; String s2 = "";
String[] arr = s.split(",");
System.out.println("总共有: " + arr.length);
int len = 70;
// 循环几个70
int cycletime = arr.length / len;
// 余下的部分
int remLen = arr.length % len;
for (int i = 0; i < cycletime; i++) {
for (int j = 0; j < len; j++) {
s2 += "," + arr[j + 70 * i];
}
s2 = s2.substring(1);
System.out.println("第" + (i + 1) + "组:");
System.out.println(s2.split(",").length);
System.out.println(s2);
// 存入数据库
// ...
// 清空
s2 = "";
}
// 余下部分
if (remLen > 0) {
System.out.println("余下的:");
s2 = "";
for (int i = 0; i < remLen; i++) {
s2 += "," + arr[i + 70 * cycletime];
}
s2 = s2.substring(1);
System.out.println(s2);
}
// 存入数据库
}
看下这部分代码:
// 循环几个70
int cycletime = arr.length / len;
// 余下的部分
int remLen = arr.length % len;
for (int i = 0; i < cycletime; i++) {
for (int j = 0; j < len; j++) {
s2 += "," + arr[j + 70 * i];
}
s2 = s2.substring(1);
System.out.println("第" + (i + 1) + "组:");
System.out.println(s2.split(",").length);
System.out.println(s2);
// 存入数据库
// ...
// 清空
s2 = "";
}
如果有140条的话,那arr.length / len(140/70=2)
也就是外面的大循环循环两遍,里面那个循环每次循环70下
for (int j = 0; j < len; j++) {
// 当第二个70的时候就是arr[0 + 70*1]开始
s2 += "," + arr[j + 70 * i];
}不知道有没理解...
?