如何把字符串"11-13,18,21-25"保存到一个二维数组?? 如何把字符串"11-13,18,21-25"保存到一个二维数组String a[][]={"11","12","13"},{"18"},{"21","22","23","24","25"}},其中11-13代表11,12,13;21-25代表21,22,23,24,25; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用split(",")或者 StringTokenizer 先吧数据分隔开 然后再进行其他处理 public class test{ public static void main(String args[]){ String str = args.length==0?"11-13,18,21-25":args[0]; String arr1[][],arr2[] = str.split(","); for(int i=0;i<str2.length;i++){ arr1[i] = arr2[i].split("-"); if(arr1[i].length==2){ int tmp1 = Integer.parseInt(arr1[i][0]); int tmp2 = Integer.parseInt(arr1[i][1]); arr1[i] = new String[tmp2-tmp1+1]; for(int j=tmp1;j<=tmp2;j++) arr1[i][j] = ""+j; } System.out.println(java.util.Arrays.asList(arr1)); }}这个是随手写出的,现在没有JDK所以无法调试,不过估计很接近了 public static void main(String[] args) { String str = "11-13,18,21-25"; String[][] result = null; String[] splitResult = str.split(","); result = new String[splitResult.length][]; for (int i = 0; i < splitResult.length; i++) { String string = splitResult[i]; int index = string.indexOf('-'); if(index >= 0){ int start = Integer.parseInt(string.substring(0, index)); int end = Integer.parseInt(string.substring(index+1)); int len = end - start + 1; result[i] = new String[len]; for (int j = 0; j < len; j++) { result[i][j] = String.valueOf(start + j); } } else { result[i] = new String[1]; result[i][0] = string; } } // output the result for (int i = 0; i < result.length; i++) { for (int j = 0; j < result[i].length; j++) { System.out.print("\t" + result[i][j]); } System.out.println(); }} 太好啦。。谢谢你们!特别鸣谢"malligator(只在此山中)" 为什么不是false和true 急招网站开发程序员(J2EE) io流抱错illegal escape character什么意思啊 linux 下 java的 mysql 驱动问题? 字符串问题 基础中的基础 10-30的数字,怎么用正则表达式匹配 求jbuilder8或9的中文电子教程 关于constructor的问题 我的本地化方法怎么不能运行, new Inner(){ }这个匿名类是不是就是指Inner类的一个匿名子类? 给个意见 Java Applet如何调试,如何显示一个对话窗体?
public static void main(String args[]){
String str = args.length==0?"11-13,18,21-25":args[0];
String arr1[][],arr2[] = str.split(",");
for(int i=0;i<str2.length;i++){
arr1[i] = arr2[i].split("-");
if(arr1[i].length==2){
int tmp1 = Integer.parseInt(arr1[i][0]);
int tmp2 = Integer.parseInt(arr1[i][1]);
arr1[i] = new String[tmp2-tmp1+1];
for(int j=tmp1;j<=tmp2;j++)
arr1[i][j] = ""+j;
}
System.out.println(java.util.Arrays.asList(arr1));
}
}这个是随手写出的,现在没有JDK所以无法调试,不过估计很接近了
String[][] result = null;
String[] splitResult = str.split(",");
result = new String[splitResult.length][];
for (int i = 0; i < splitResult.length; i++) {
String string = splitResult[i];
int index = string.indexOf('-');
if(index >= 0){
int start = Integer.parseInt(string.substring(0, index));
int end = Integer.parseInt(string.substring(index+1));
int len = end - start + 1;
result[i] = new String[len];
for (int j = 0; j < len; j++) {
result[i][j] = String.valueOf(start + j);
}
} else {
result[i] = new String[1];
result[i][0] = string;
}
}
// output the result
for (int i = 0; i < result.length; i++) {
for (int j = 0; j < result[i].length; j++) {
System.out.print("\t" + result[i][j]);
}
System.out.println();
}
}