import java.util.ArrayList;
import java.util.List;
public class Test7 {
//method 1-1
public static List getStringList(int m,int n,String[] str){
List list = new ArrayList();
String s = "";
if(m*n==str.length){
for(int j=0;j<n;j++){
s = "";
for(int i=j;i<str.length;i+=n){
s+=str[i]+";";
}
list.add(s);
}
}else{
list = null;
}
return list;
}
//method 1-2
public static void sysResult(List list){
if(!list.isEmpty()){
for(int i=0;i<list.size();i++){
System.out.println("第"+i+"次");
String[] str = list.get(i).toString().split(";");
for(int j=0;j<str.length;j++){
System.out.println(str[j]);
}
System.out.println();
}
}
}
//method 2-1
public static String[][] getStringL(int m,int n,String[] str){
String[][] s = new String[n][m];//记住,二维数组的声明是先声明列,再声明行,我曾经在这里迷糊了n久
for(int j=0;j<n;j++){
int h = j ;
for(int i=0 ;i<m;i++){
s[j][i] = str[h];
h+=n;
}
}
return s;
}
//method 2-2
public static void sysStringList(String[][] str){
for(int i=0;i<str.length;i++){
System.out.println("第"+i+"次");
for(int j=0;j<str[i].length;j++){
System.out.println(str[i][j]);
}
System.out.println();
}
}
public static void main(String[] args) {
//画一个动态生成的表 , 这里假设画一个5行3列的表
int m = 5 , n = 3;
//表结构应该是如下的: 如果在加一列,应该是在最后一列加上8.1,8.2,8.3,8.4,8.5
/**
5.1 6.1 7.1
5.2 6.2 7.2
5.3 6.3 7.3
5.4 6.4 7.4
5.5 6.5 7.5
**/
//但是从页面通过request.getParameterValues("name");却获得了如下的并不是本来需要的纵向的数列
String[] str = {"5.1","6.1","7.1","5.2","6.2","7.2","5.3","6.3","7.3",
"5.4","6.4","7.4","5.5","6.5","7.5"};
//method 1 通过list动态的存储一个可以split的String串
List list = getStringList(m,n,str);
sysResult(list);
System.out.println("-----------");
// method 2 通过二维数组来完成功能
String[][] s = getStringL(5,3,str);
sysStringList(s);
}