Java 如何优化写入多行输出?
有没有比用这种方式编写Java 如何优化写入多行输出?,java,Java,有没有比用这种方式编写System.out.println更好的解决方案 String nl = System.getProperty("line.separator"); for (k=0; k<=ds.size()-counter-1; k=k+counter){ System.out.println (metric+" "+ds.get(k)+" "+ds.get(k+2)+" sensor=A cell="+ cellName + nl +
System.out.println
更好的解决方案
String nl = System.getProperty("line.separator");
for (k=0; k<=ds.size()-counter-1; k=k+counter){
System.out.println (metric+" "+ds.get(k)+" "+ds.get(k+2)+" sensor=A cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+3)+" sensor=B cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+4)+" sensor=C cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+5)+" sensor=D cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+6)+" sensor=E cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+7)+" sensor=F cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+8)+" sensor=G cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+9)+" sensor=H cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+10)+" sensor=I cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+11)+" sensor=L cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+12)+" sensor=M cell="+ cellName + nl +
metric+" "+ds.get(k)+" "+ds.get(k+13)+" sensor=N cell="+ cellName);
}
String nl=System.getProperty(“line.separator”);
对于(k=0;k创建StringBuilder,将字符串附加到StringBuilder,然后在一个System.out.println调用中打印它
哦,您可以轻松地嵌套两个for循环,使代码更具可读性
e、 g
StringBuilder StringBuilder=新建StringBuilder();
格式化程序格式化程序=新格式化程序(stringBuilder);
int max=12;
字符串模板=公制+%s%s传感器=%c cell=“+cellName+nl;
对于(int i=0;i
- 注意:代码未编译或测试
- 注2:如果试图提取超出ds列表大小的项,则“编写为代码”会带来风险。您需要根据ds列表的大小设置maxSomething
创建一个StringBuilder,将字符串附加到StringBuilder,然后在一个System.out.println调用中打印它
哦,您可以轻松地嵌套两个for循环,使代码更具可读性
e、 g
StringBuilder StringBuilder=新建StringBuilder();
格式化程序格式化程序=新格式化程序(stringBuilder);
int max=12;
字符串模板=公制+%s%s传感器=%c cell=“+cellName+nl;
对于(int i=0;i
- 注意:代码未编译或测试
- 注2:如果试图提取超出ds列表大小的项,则“编写为代码”会带来风险。您需要根据ds列表的大小设置maxSomething
@Markviduka:这是一个性能更高的解决方案,因为println非常慢,StringBuilder\append(…)
非常快。请参阅编辑,例如,+1,使用格式
干燥要输出的文本。@Markviduka:这是一个性能更高的解决方案,因为println在StringBuilder\append(…)时非常慢
速度非常快。请参见编辑,例如,+1,以使用格式
干燥要输出的文本。
StringBuilder stringBuilder = new StringBuilder();
Formatter formatter = new Formatter(stringBuilder);
int maxSomething = 12;
String template = metric + " %s %s sensor=%c cell=" + cellName + nl;
for (int i = 0; i < ds.size()-counter-1; i = i + counter) {
for (int j = 0; j < maxSomething; j++) {
formatter.format(template, ds.get(i), ds.get(i + j + 2), (char)('A' + j));
}
}
// the toString() below isn't necessary but is present for clarity
System.out.println(stringBuilder.toString());
formatter.close();