到目前为止,我编写的代码使表格看起来有点像 Excel 中的表格,并且在编译时我能够输入字母单词,但我不能说例如 1a 等于 5 并使 1a 中的单元格显示 5这是我的 table 到目前为止的样子。这是我绘制表格的代码:
package table;
public class Spreadsheat {
private int xVal = 137;
private int yVal = 1;
private int[][] table = new int [20][20];
private char yaxis = 'A';
private int xaxis = 0;
public Spreadsheat(){
for(int i = 0; i < xVal; i++){
System.out.print("-");
}
System.out.println();
System.out.print(" |");
for(int i = 0; i < 17; i++){
System.out.print("| " + yaxis + "\t" + "|" );
yaxis = (char) (yaxis + 1);
}
System.out.println();
for(int i = 0; i < xVal; i++){
System.out.print("-");
}
System.out.println();
for(int j = 0; j <10;j++){
System.out.print(" " + xaxis + "|");
for(int i = 0; i < 17; i++){
System.out.print("|" + "\t" + "|" );
}
System.out.println();
xaxis = xaxis + 1;
}
}
public void setxval(int xVal) {
this.xVal = xVal;
}
public int getxVal() {
return xVal;
}
public void setyVal(int yVal) {
this.yVal = yVal;
}
public int getyVal() {
return yVal;
}
public void setTable(int table[][]) {
this.table = table;
}
public int[][] gettable() {
return table;
}
}
这是我的客户端程序:
package Client;
import java.util.Scanner;
import table.Spreadsheat;
public class VisiCalc {
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
Spreadsheat table = new Spreadsheat();
boolean end = false;
while(end == false){
String input = kb.next();
System.out.println(input);
if(input.contains("quit")){
end = true;
}
}
}
}
最佳答案
- 您的电子表格需要一种更新
表格
的方法。例如,您的 Spreadsheet 类中需要这样的方法:
public void setValue(int row, int col, int value) { if (row >= 0 && row < 20 && col >=0 && col < 20) { table[row][col] = value; } }
您需要一种方法来转换键盘输入,以便可以调用
table.setValue(...)
。例如,如果您输入“2A=8”,您的方法应将该字符串解析为 x=1、y=0、v=8 并调用 table.setValue(x,y,v)。如果您想要在电子表格或客户端中使用该方法,则由您决定。您需要电子表格中的一种方法,以便可以将包含更新内容的表格打印到屏幕上。您将意识到您需要格式化您的内容,以便您的列正确排列。最简单的方法是将每列设置为固定宽度(例如 8),然后使用 java.text.DecimalFormat 将 int 转换为 String。
我想这是一个开始。
关于java - 如何在表格的单元格中输入数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882957/