Java';s格式说明符重复打印输出
我已经编写了一个Java程序来打印从1到10的数字,并使用空格格式。使用Java';s格式说明符重复打印输出,java,format,Java,Format,我已经编写了一个Java程序来打印从1到10的数字,并使用空格格式。使用java.util.Formatter,我没有得到预期的输出。为什么? 预期产出为: 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 这是我的代码: import java.util.*; public class CountTo10 { static void formatterFunc() { String mySt
java.util.Formatter
,我没有得到预期的输出。为什么?
预期产出为:
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
这是我的代码:
import java.util.*;
public class CountTo10 {
static void formatterFunc() {
String myString = "";
Formatter fmt = new Formatter();
for(int i=1; i<=10; i++) {
fmt.format("%4d", i);
myString = myString + fmt;
}
System.out.println(myString);
}
static void stringFunc() {
String myString = "";
for(int i=1; i<=10; i++) {
myString = myString + i + " ";
}
System.out.println(myString);
}
public static void main(String args[]) {
stringFunc();
System.out.println("\n");
formatterFunc();
}
}
import java.util.*;
公共类计数为10{
静态void formatterFunc(){
字符串myString=“”;
格式化程序fmt=新格式化程序();
对于(int i=1;ijava.util.Formatter的一些构造函数
将可追加的
作为参数。但是根据默认构造函数(您正在使用的)使用StringBuilder
(StringBuilder
实现可追加的
)
格式化输出的目标是StringBuilder
因此,每次调用fmt.format()
您的修复选项包括:
不要使用字符串
串联,只使用格式化程序
:
static void formatterFunc() {
try(Formatter fmt = new Formatter()) { // Formatter should also be properly closed
for(int i=1; i<=10; i++) {
fmt.format("%4d", i);
}
System.out.println(fmt);
}
}
提供您自己的可附加的
static void formatterFunc() {
StringBuilder sb = new StringBuilder();
try(Formatter fmt = new Formatter(sb)) { // Formatter should be properly closed
for(int i=1; i<=10; i++) {
fmt.format("%4d", i);
}
}
System.out.println(sb.toString()); // We can print this even after Formatter has been closed
}
static void formatterFunc(){
StringBuilder sb=新的StringBuilder();
try(Formatter fmt=new Formatter(sb)){//应正确关闭格式化程序
对于(int i=1;ijava.util.Formatter的一些构造函数
将可追加的
作为参数。但是根据默认构造函数(您正在使用的)使用StringBuilder
(StringBuilder
实现可追加的
)
格式化输出的目标是StringBuilder
因此,每次调用fmt.format()
您的修复选项包括:
不要使用字符串
串联,只使用格式化程序
:
static void formatterFunc() {
try(Formatter fmt = new Formatter()) { // Formatter should also be properly closed
for(int i=1; i<=10; i++) {
fmt.format("%4d", i);
}
System.out.println(fmt);
}
}
提供您自己的可附加的
static void formatterFunc() {
StringBuilder sb = new StringBuilder();
try(Formatter fmt = new Formatter(sb)) { // Formatter should be properly closed
for(int i=1; i<=10; i++) {
fmt.format("%4d", i);
}
}
System.out.println(sb.toString()); // We can print this even after Formatter has been closed
}
static void formatterFunc(){
StringBuilder sb=新的StringBuilder();
try(Formatter fmt=new Formatter(sb)){//应正确关闭格式化程序
对于(int i=1;i