【发布时间】:2014-05-22 07:52:44
【问题描述】:
我在弄清楚如何填充从我的数组值打印的字符串时遇到问题。我认为我有一个很好的方法,但它不能正确读取 x.length,所以我很好奇替代方法,甚至对 bug 的解释。
import java.util.Scanner;
//================================================================
public class Array {
//----------------------------------------------------------------
private static Scanner Keyboard = new Scanner(System.in);
public static void main(String[] args) {
//----------------------------------------------------------------
char group, rLetter,letter;
String choice ;
String str = " ";
double sum = 0;
int num = 10; // for test
int rows = 10;
int columns = 8;
double average = 0;
int S;
int diff = 0;
int totalChar=0;
int minLen = 20;
String x= "";
// creating 2d array
System.out.print("Please enter number of rows : ");
rows = Keyboard.nextInt();
Keyboard.nextLine();
double[][] figures = new double[rows][num];
for(int t = 0; t < rows; t++) {
rLetter = (char)((t)+'A');
System.out.print("Please enter number of positions in row " + rLetter + " : ");
columns = Keyboard.nextInt();
Keyboard.nextLine();
figures[t] = new double[columns];
}
// filling the array
for(int row = 0; row < figures.length; ++row) {
for(int col = 0; col < figures[row].length; ++col) {
figures[row][col] = 0.0;
}
}
// printing the array
for(int row=0; row<figures.length; ++row) {
// printing data row
group = (char)((row)+(int)'A');
System.out.print(group+" : ");
for(int col=0; col<figures[row].length; ++col) {
sum += figures[row][col];
average = sum/figures[row].length;
x = " "+figures[row][col];
diff = minLen - x.length();
System.out.printf("%1$" + diff + "s", x);
System.out.print(" ");
}
System.out.print("["+average+"]");
System.out.println();
}
}
}
我想生成一个如下所示的表格:
A: 0.0 0.0 0.0 - [ 0.0, 0.0]
B: 0.0 0.0 0.0 0.0 - [ 0.0, 0.0]
C: 0.0 0.0 0.0 0.0 0.0 - [ 0.0, 0.0]
- 是我想用空格填充到任意长度的地方。换句话说,我希望我的打印数组部分能够打印每一行并将空格添加到一个点。是否有可能为此制定一种方法?我还不熟悉所有的 java 方法,因此感谢您的帮助。 如果这是一个重复的问题,我将不胜感激重定向到原始问题,我会尝试删除这个问题。也很抱歉给您带来不便。
【问题讨论】:
标签: java arrays string padding