java中关于水平制表的问题
比如说我用制表/t后得出的表格是向左对齐的:1
21
后怎么变成下面那样向右呢:
1
21 --------------------编程问答-------------------- 制表符解决不了这个问题。
你的问题要用 printf 来解决。 --------------------编程问答-------------------- 怎么用
--------------------编程问答--------------------
这是我的代码:int j ,k; //part2
for(j=1;j<=9;j++){
System.out.print(" "+j);
System.out.print("|");
for(k=1;k<=9;k++){
System.out.print("\t"+k * +j);
}
System.out.println("");
};
怎么改呢 --------------------编程问答-------------------- 你试试看:
System.out.printf("%9d", j);
应该就知道我的意思了。 --------------------编程问答-------------------- 4楼好强大 --------------------编程问答-------------------- System.out.printf函数其实是C标准里printf函数的Java实现,
想详细了解的话在下这里有个详细说明的链接。
printf函数详解 --------------------编程问答-------------------- 如果想取到格式化后的字符串,可以用类函数String.format,给个例子:
public static void main(String[] args) {
int n = 1;
String strs[] = new String[5];
for (int i = 0; i < 5; i++) {
strs[i] = String.format("%6d", n *= 10);
System.out.format("%6d\n", n);
}
for (int i = 0; i < 5; i++)
System.out.println(strs[i]);
}
PS:其实PrintStream.printf是PrintStream.format的别名,在JDK中printf的定义是:
public PrintStream printf(String format, Object ... args) {
return format(format, args);
}
而且String.format与System.out.format其实是调用同一个函数Formatter.format实现的:
public static String format(String format, Object ... args) {
return new Formatter().format(format, args).toString();
}
想了解具体实现的请自己查看JDK。
补充:Java , Java SE