日期:2014-05-20  浏览次数:20674 次

使用GUI技术输出用星号(*)表示的一个长方形,但结果却没有对齐,怎么解决,是因为星号“×”和空格“ ”大小不一样吗
[img=http://][/img]

import javax.swing.JOptionPane;

public class Title2_20 {

/**
 * @param args
 */
public static void main(String[] args) {
//声明变量
       int a,b,i,j;
       String str1,str2,result;
       String num[][];
       //使用GUI技术提示用户输入数据
       str1=JOptionPane.showInputDialog("输入长方形的长:");
       str2=JOptionPane.showInputDialog("输入长方形的宽:");
       //将String转变为整数
       a=Integer.parseInt(str1);
       b=Integer.parseInt(str2);
       
       result="你输入的长方形的长,宽为:"+a+", "+b+"\n";
       //初始化数组
       num=new String[b][a];
       //对数组对行星号(*)赋值
      for(i=0;i<b;i++)
       {
        
        for(j=0;j<a;j++)
        {
        if(i==0) num[0][j]="*";
        else if(i==b-1) num[i][j]="*";
        else{
        if(j==0||j==a-1)
                num[i][j]="*";
        else num[i][j]=" ";  //对没有赋星号(*)的数组,进行空格赋值,否则就默认为null
             }
        }
       
       }
      //进行结果输出操作,将数组赋值给String类型的result。 
      for(i=0;i<b;i++)
       {
        for(j=0;j<a;j++)
        result=result+" "+num[i][j];
        result=result+"\n";
       }
       //使用GUI技术显示结果。
       JOptionPane.showMessageDialog(null, result,"结果",JOptionPane.INFORMATION_MESSAGE);
       System.exit(0);
}

}
但输出结果是这样:
你输入的长方形的长,宽为:5,5
 *****
 *  *
 *  *
 *  *
 *****
我想要的结果是这样的
*****
*    *
*    *
*    *
*****
为什么出现这种问题呢

------解决方案--------------------
这好像也分不同字体的,都用全角的试试呢。。。