一组数
2006.01 25
2006.02 35
2007.01 25
2007.02 35想格式化成:
2006 2007
01 25 25
02 35 35部分代码:
String [][] T = new String[4][2];
T[0][0] = "2006.01";
T[0][1] = "25";
T[1][0] = "2006.02";
T[1][1] = "35";
T[2][0] = "2007.01";
T[2][1] = "25";
T[3][0] = "2007.02";
T[3][1] = "35";请问如果打印出来想要的格式:
2006.01 25
2006.02 35
2007.01 25
2007.02 35想格式化成:
2006 2007
01 25 25
02 35 35部分代码:
String [][] T = new String[4][2];
T[0][0] = "2006.01";
T[0][1] = "25";
T[1][0] = "2006.02";
T[1][1] = "35";
T[2][0] = "2007.01";
T[2][1] = "25";
T[3][0] = "2007.02";
T[3][1] = "35";请问如果打印出来想要的格式:
效率可能低了点 就和着用吧import java.util.*;
public class Test {
public static void main(String[] args){
String[][] arr={{"2006.1","25"},{"2009.4","75"},{"2003.8","22"},{"2006.2","35"},{"2006.3","48"},{"2007.1","25"},
{"2007.3","55"},{"2008.2","15"},{"2008.4","65"},{"2009.6","84"},{"2008.3","25"}};
TreeSet<String> yearSet=new TreeSet<String>();
TreeSet<String> monthSet=new TreeSet<String>();
String year,month;
for(int i=0;i<arr.length;i++){
year=arr[i][0].substring(0, 4);
month=arr[i][0].substring(5);
yearSet.add(year);monthSet.add(month);
}
HashMap<String,Integer> yearMap=new HashMap<String,Integer>();
HashMap<String,Integer> monthMap=new HashMap<String,Integer>();
String[][] newArr=new String[monthSet.size()+1][yearSet.size()+1];
for(int m=0;m<monthSet.size()+1;m++)
for(int y=0;y<yearSet.size()+1;y++)
newArr[m][y]="/";
newArr[0][0]="m\\y";
int i=1;
for(String str:yearSet){
newArr[0][i]=str;
yearMap.put(str, i++);}
int j=1;
for(String str:monthSet){
newArr[j][0]=str;
monthMap.put(str, j++);}
for(int k=0;k<arr.length;k++){
year=arr[k][0].substring(0, 4);
month=arr[k][0].substring(5);
i=yearMap.get(year);
j=monthMap.get(month);
newArr[j][i]=arr[k][1];
}
for(String strs[]:newArr){
for(String str:strs)
System.out.printf("%5s",str);
System.out.println();
}
}
}
输出:
m\y 2003 2006 2007 2008 2009
1 / 25 25 / /
2 / 35 / 15 /
3 / 48 55 25 /
4 / / / 65 75
6 / / / / 84
8 22 / / / /