java输出矩形99乘法表时怎样控制对齐输出?

时间:2022-10-02 00:45:06
以下是代码:class Cheng
{
public static void main(String[]args)
{
   int i,j;    
   for(i=1;i<=9;i++)
   {
for(j=1;j<=9;j++)
{
                System.out.print(j+"*"+i+"="+j*i+" ");    
}
   }
   System.out.println();
   System.out.println();
  }
}
想要得到的结果是:
 1*1=1   1*1=2    1*3=3  ……

 2*1=1   2*2=2    2*3=3  ……

      ……

 9*1=1   9*2=18   9*3=27 ……

求各位帮忙,是不是有控制输出对齐的函数啊?

12 个解决方案

#1


 没的,有都是你自己写的..
System.out.println();放在第一个循环内,i,j换下不就可以啦嘛。

#2


System.out.print(j+"*"+i+"="+j*i+" ");

改成

System.out.printf("%d * %d = %2d  ", j, i, j * i);

#3


System.out.print(j+"*"+i+"="+j*i+" ");   
改成
System.out.print(j+"*"+i+"="+j*i+"\t");
\t表示制表符,有对齐的效果,LZ试试吧!   

#4


class Chen {
    public static void main(String[]args) {
        int i,j;   
        for(i=1;i<=9;i++) {
            for(j=1;j<=9;j++) { 
               System.out.print(j+"*"+i+"="+j*i+"\t");   
            }
            System.out.println();
        }
    }
}

你的System.out.println();位置也有问题。改好了LZ参考下吧

#5


你这个不像99乘法表啊!!!!!

#6


请参考下下面的代码

public static void main(String[] args) throws Exception {
int length=6;
String seperator="   ";
String format="%1$-"+length+"s"+seperator;
System.out.print("  ");
for(int i=1;i<10;i++){
System.out.print(String.format(format, i));
}
System.out.println();
for(int i=1;i<10;i++){
System.out.print(i+" ");
for(int j=1;j<=i;j++){
System.out.print(String.format(format, j+"*"+i+"="+(i*j)));
}
System.out.println();
}
}

#7


谢谢你们哈,我的代码是把i和j的位置搞反了,,,另外,,开始是在JDK运行的,,打\t也不能对齐,,但是在eclipse中就可以了

#8


public class test {
public static void main(String[] args) {
for(int i = 2, j = 1;i <= 10;i++){
if(j > 9){
j = 1;
System.out.println();
}else{
i--;
System.out.print(i+"*"+j+"="+i*j+"  ");
j++;
}

}
}
}

#9


没用过的同学可以试试,这和C中的printf是一样的,格式化输出。
引用 2 楼 bao110908 的回复:
System.out.print(j+"*"+i+"="+j*i+" ");

改成

System.out.printf("%d * %d = %2d ", j, i, j * i);

#10


LS的那个格式化输出可以
还是第一次这样用,学到了

#11


引用 6 楼 zyz1985 的回复:
请参考下下面的代码

Java code


public static void main(String[] args) throws Exception {
        int length=6;
        String seperator="   ";
        String format="%1$-"+length+"s"+seperator;
     ……


这个才是乘法口诀表 +1

#12


package fordmeo;

public class Fordmeo 
{
public static void main(String[]args)
{
   int i,j;    
   for(i=1;i<=9;i++)
   {
for(j=1;j<=9;j++)
{
System.out.printf("%d*%d=%d ", j, i, j * i);
if(i*j<10)
System.out.print(" ");
}
System.out.println("\n");  
   }
    
  }
}

#1


 没的,有都是你自己写的..
System.out.println();放在第一个循环内,i,j换下不就可以啦嘛。

#2


System.out.print(j+"*"+i+"="+j*i+" ");

改成

System.out.printf("%d * %d = %2d  ", j, i, j * i);

#3


System.out.print(j+"*"+i+"="+j*i+" ");   
改成
System.out.print(j+"*"+i+"="+j*i+"\t");
\t表示制表符,有对齐的效果,LZ试试吧!   

#4


class Chen {
    public static void main(String[]args) {
        int i,j;   
        for(i=1;i<=9;i++) {
            for(j=1;j<=9;j++) { 
               System.out.print(j+"*"+i+"="+j*i+"\t");   
            }
            System.out.println();
        }
    }
}

你的System.out.println();位置也有问题。改好了LZ参考下吧

#5


你这个不像99乘法表啊!!!!!

#6


请参考下下面的代码

public static void main(String[] args) throws Exception {
int length=6;
String seperator="   ";
String format="%1$-"+length+"s"+seperator;
System.out.print("  ");
for(int i=1;i<10;i++){
System.out.print(String.format(format, i));
}
System.out.println();
for(int i=1;i<10;i++){
System.out.print(i+" ");
for(int j=1;j<=i;j++){
System.out.print(String.format(format, j+"*"+i+"="+(i*j)));
}
System.out.println();
}
}

#7


谢谢你们哈,我的代码是把i和j的位置搞反了,,,另外,,开始是在JDK运行的,,打\t也不能对齐,,但是在eclipse中就可以了

#8


public class test {
public static void main(String[] args) {
for(int i = 2, j = 1;i <= 10;i++){
if(j > 9){
j = 1;
System.out.println();
}else{
i--;
System.out.print(i+"*"+j+"="+i*j+"  ");
j++;
}

}
}
}

#9


没用过的同学可以试试,这和C中的printf是一样的,格式化输出。
引用 2 楼 bao110908 的回复:
System.out.print(j+"*"+i+"="+j*i+" ");

改成

System.out.printf("%d * %d = %2d ", j, i, j * i);

#10


LS的那个格式化输出可以
还是第一次这样用,学到了

#11


引用 6 楼 zyz1985 的回复:
请参考下下面的代码

Java code


public static void main(String[] args) throws Exception {
        int length=6;
        String seperator="   ";
        String format="%1$-"+length+"s"+seperator;
     ……


这个才是乘法口诀表 +1

#12


package fordmeo;

public class Fordmeo 
{
public static void main(String[]args)
{
   int i,j;    
   for(i=1;i<=9;i++)
   {
for(j=1;j<=9;j++)
{
System.out.printf("%d*%d=%d ", j, i, j * i);
if(i*j<10)
System.out.print(" ");
}
System.out.println("\n");  
   }
    
  }
}