Java 方法显示不同的表内容,重复标题问题
我需要能够使用不同的方法来打印特定的表内容,比如和、乘法或随机表等等。我不知道如何将此内容与行ID分开打印。我遇到的另一个问题是,当我输入“f”重新打印表格时,每次打印时标题都会重复,这会在几次重新打印后创建一个很长的重复标题,有人能帮我吗 原始代码后面是Java 方法显示不同的表内容,重复标题问题,java,class,methods,menu,Java,Class,Methods,Menu,我需要能够使用不同的方法来打印特定的表内容,比如和、乘法或随机表等等。我不知道如何将此内容与行ID分开打印。我遇到的另一个问题是,当我输入“f”重新打印表格时,每次打印时标题都会重复,这会在几次重新打印后创建一个很长的重复标题,有人能帮我吗 原始代码后面是IntTable类,我知道它没有完全填写,但我想在继续之前弄清楚这一点 import java.util.Scanner; public class Assignment6{ public static String returnM
IntTable
类,我知道它没有完全填写,但我想在继续之前弄清楚这一点
import java.util.Scanner;
public class Assignment6{
public static String returnMenu(){
String menu = "Command Options---------------\na: Create a new table\nb: Change the row sizes\nc: Change the column sizes\nd: Change the data types\ne: Chnge the formats\nf: Display the table\ng: Display the log data\n:?: Display this menu\nq: Quit the program\n------------------------------";
return menu;
}
public static void main(String[] arg){
Scanner scan = new Scanner(System.in);
String input = "p";
String output = "NOOOOO!";
IntTable myTable = new IntTable();
while (!input.equals("q")){
System.out.println("Please input a command: ");
input = scan.nextLine();
if (input.equals("a")){
System.out.print("a [Input three integers to initialize table]: ");
myTable.setRow(scan.nextInt()); myTable.setColumn(scan.nextInt()); myTable.setType(scan.nextInt());
scan.nextLine();
myTable.printTable();
}
else if (input.equals("b")){
System.out.print("b [Enter integer to update table row]: ");
myTable.setRow(scan.nextInt());
scan.nextLine();
}
else if (input.equals("c")){
System.out.println("c [Enter integer to update column]: ");
myTable.setColumn(scan.nextInt());
scan.nextLine();
}
else if (input.equals("d")){
System.out.println("d [Enter integer to update data type]: ");
myTable.setType(scan.nextInt());
scan.nextLine();
}
else if (input.equals("e")){
System.out.println("e [Enter integer to update printf format]: ");
}
else if (input.equals("f")){
System.out.println("f [Display table]: ");
myTable.printTable();
}
else if (input.equals("g")){
System.out.println("g [Display data log]: ");
}
else if (input.equals("?")){
System.out.println(Assignment6.returnMenu());
}
else
System.out.println("Invalid: ***Type \"?\" to get the commands***");
}
}
}
public class IntTable{
private int row, column, type;
static String log, tFormat;
final int TYPE_DEFAULT = 0;
final int TYPE_NUMBERS = 1;
final int TYPE_SUM = 2;
final int TYPE_MULTIPLY = 3;
final int TYPE_RANDOM = 4;
final int TYPE_POWER = 5;
final int TYPE_FIBONACCI = 6;
String beginRow = " * |";
String divider = "-------";
int count = 1;
public IntTable(){
}
public IntTable(int row, int column, int type){
}
public int getRow(){
return row;
}
public int getColumn(){
return column;
}
public int getType(){
return type;
}
public void setRow(int newRow){
row = newRow;
}
public void setColumn(int newColumn){
column = newColumn;
}
public void setType(int newType){
type = newType;
}
public void printTable(){
int count = 1;
printTableHeader();
for(int i = 1; i <row+1; i++){
System.out.printf("%4d %4s", i, " |");
for (int j = 1; j < column+1; j++)
{
System.out.printf("%4d", count);
count++;
}
System.out.println();
}
}
private void printTableHeader(){
for(int i = 1; i < column + 1; i++)
{
beginRow+=" "+i;
divider+="-----";
}
System.out.println(beginRow);
System.out.println(divider);
}
private void printTableRowID(int ID){
ID = row;
for(int i = 1; i <ID+1; i++){
System.out.printf("%4d %4s", i, " |");
System.out.print(getElement(i, (row-(row-1))));
System.out.println();
}
}
private int getElement(int c, int r){
if(type == 0)
return 0;
else if(type == 1)
return c+column;
else if(type == 2)
return c+ r;
else if(type == 3)
return c*r;
else if(type == 4)
return (int)(1 + Math.random()*10);
else if(type == 5)
return (int)Math.pow(r, c);
else
return r;
}
private int pow(int one, int two){
return (int)Math.pow(one, two);
}
private int fibonacci(int fib){
return fib;
}
private int sum(int add, int addd){
return add + addd;
}
private int multiply(int prod, int product){
return prod * product;
}
private int random(int what, int huh){
return (int)(what + Math.random()*huh);
}
}
import java.util.Scanner;
公共课堂作业6{
公共静态字符串返回菜单(){
String menu=“命令选项-------------------\na:创建新表\nb:更改行大小\nc:更改列大小\nd:更改数据类型\ne:更改格式\nf:显示表\ng:显示日志数据\n:?:显示此菜单\nq:退出程序\n------------------------------”;
返回菜单;
}
公共静态void main(字符串[]arg){
扫描仪扫描=新扫描仪(System.in);
字符串输入=“p”;
字符串输出=“NOOOOO!”;
IntTable myTable=新IntTable();
而(!input.equals(“q”)){
System.out.println(“请输入命令:”);
输入=scan.nextLine();
if(输入等于(“a”)){
System.out.print(“a[输入三个整数以初始化表格]:”;
myTable.setRow(scan.nextInt());myTable.setColumn(scan.nextInt());myTable.setType(scan.nextInt());
scan.nextLine();
myTable.printTable();
}
else if(输入等于(“b”)){
System.out.print(“b[输入整数以更新表行]:”;
setRow(scan.nextInt());
scan.nextLine();
}
else if(输入等于(“c”)){
System.out.println(“c[输入整数以更新列]:”;
setColumn(scan.nextInt());
scan.nextLine();
}
else if(输入等于(“d”)){
System.out.println(“d[输入整数以更新数据类型]:”;
setType(scan.nextInt());
scan.nextLine();
}
else if(输入等于(“e”)){
System.out.println(“e[输入整数以更新printf格式]:”;
}
else if(输入等于(“f”)){
System.out.println(“f[显示表]:”);
myTable.printTable();
}
else if(输入等于(“g”)){
System.out.println(“g[显示数据日志]:”);
}
else if(输入。等于(“?”){
System.out.println(Assignment6.returnMenu());
}
其他的
System.out.println(“无效:**Type\”?\“获取命令***”);
}
}
}
公共类IntTable{
私有int行、列、类型;
静态字符串日志,tFormat;
最终整数类型\默认值=0;
最终整数类型_数=1;
最终整数类型_和=2;
最终整数类型_乘法=3;
最终整数类型_RANDOM=4;
最终int类型_功率=5;
最终整数类型_FIBONACCI=6;
字符串beginRow=“*|”;
字符串分隔符=“----”;
整数计数=1;
公共IntTable(){
}
公共IntTable(int行、int列、int类型){
}
public int getRow(){
返回行;
}
public int getColumn(){
返回列;
}
公共int getType(){
返回类型;
}
公共void setRow(int newRow){
行=新行;
}
公共void setColumn(int newColumn){
column=newColumn;
}
公共void集合类型(int newType){
类型=新类型;
}
公共空打印表(){
整数计数=1;
printTableHeader();
对于(int i=1;i头重复的原因是您没有重新初始化变量(beginRow和divider)
调用printTable方法时,变量String beginRow=“*|”;String divider=“------”;
被重新定义
您需要重新初始化变量(beginRow,分隔符)
看看我修改的代码
私有void printTableHeader()
{
for(int i = 1; i < column + 1; i++)
{
beginRow+=" "+i;
divider+="-----";
}
System.out.println(beginRow);
System.out.println(divider);
beginRow = " * |";
divider = "-------";
}