class array_temp
{
    int[][] _data = null;
    String[][] _printdata = null;
    public array_temp(int[][] data){
this._data = data;//构造函数,传递数组
this.parseArray();
    }
    private int getMaxLength(){//获取最大长度数字的长度
int intlength = 0;
for(int i =0;i<this._data.length;i++){
    for(int j =0;j<this._data[0].length;j++){
if((""+this._data[i][j]).length()>intlength){
    intlength = (""+this._data[i][j]).length();
}
    }
}
return intlength;
    }    private void parseArray(){//格式化数组到字符串数组
int intlength = getMaxLength();
_printdata = new String[_data.length][_data[0].length]; for(int i =0;i<this._printdata.length;i++){
    for(int j =0;j<this._printdata[0].length;j++){
_printdata[i][j] ="";
    }
}
for(int i =0;i<this._data.length;i++){
    for(int j =0;j<this._data[0].length;j++){
if((""+this._data[i][j]).length()<intlength){
    for(int k=0;k<intlength-(""+this._data[i][j]).length();k++){
_printdata[i][j] += " ";
    }
    _printdata[i][j] += _data[i][j];
}
else{
    _printdata[i][j] = ""+_data[i][j];
}
    }
}
    }
    public String getFormatStr(){
if (_printdata==null||_printdata.length==0||this._printdata[0].length==0){
    return null;//如果数组为空
} int rowCount= this._printdata.length;//获取行数
int colCount= this._printdata[0].length;//获取列数
//定义返回字符串
String output = "The Data of two dimensional array:\n";
for (int i=0;i<rowCount ;i++ ){  //输出原始二维数组
    for (int j=0;j<colCount ;j++ ){
if ( j == 0 && i == 0 )                    output += "┏";
if ( j == 0 && i == rowCount-1 )           output += "┗";
if ( j == 0 && i != 0 && i != rowCount-1)  output += "┃";
//二维数组的输出
output += " "+_printdata[i][j]+" "; if ( j == colCount-1 && i != 0 && i != rowCount-1)            output += "┃";
if ( j == colCount-1 && i == 0 )               output += "┓";
if ( j == colCount-1 && i == rowCount-1 )                     output += "┛";
    }
    output += "\n";
}
return output;
    }    public static void main(String[] args)
    {
//预设 5 * 4 的矩阵数据
int[][] Data =
{   {999, 7, 6, 6},
    {9, 7, 6, 6},
    {35555, 5, 3, 3},
    {6, 6, 4, 7},
    {7, 5, 1, 4},
    {1, 2, 8, 0}
}; array_temp temp = new array_temp(Data);
System.out.println(temp.getFormatStr());
    }}

解决方案 »

  1.   

    十分感谢! 感动得流泪!  dooby(德鲁比)还有一句不达目的不罢休的话。。如果输入数组是char,double,int,long......C++可用泛形, Java有Hype吧!(JDK 1.5实现了吗?)Java中如何解决,难道复制代码改类型吗?再次感谢!
      

  2.   

    由于做项目的原因 我一直都在用jdk1。3。1,1.4这阵子正在看文档。
    至于泛型,java目前应该是不支持,不过在jdk1.5的预告上说会支持。
    现在我也只有取出Object类型再进行强制类型转换,你再问问高手吧。