如何使用字符串构建器来缩短此字符串?

时间:2015-08-27 12:23:17

标签: java string stringbuilder

我有这个用于启用GC日志记录:

updateJVMArguments("-Xloggc:gc_" + myapp.getFileName() + "-" + getDateTime() +".log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2M");

正如你所看到的那样很长,无论如何都要使用StringBuilders来缩短它,甚至使用变量来传递2M5

2 个答案:

答案 0 :(得分:3)

使用长字符串是您的应用程序的要求,因此您无法对其长度进行操作 但是你可以通过将它分成多行来提高其可读性:

    String.format("-Xloggc:gc_%s-%s.log " // This option that
            + "-verbose:gc " 
            + "-XX:+PrintGCDetails " // this activates such
            + "-XX:+PrintGCDateStamps "
            + "-XX:+PrintGCTimeStamps "
            + "-XX:+UseGCLogFileRotation "
            + "-XX:NumberOfGCLogFiles=%d "
            + "-XX:GCLogFileSize=%s", 
            myapp.getFileName(), getDateTime(), 5, "2M");        

与简单地移动滚动条相比,它不仅可以简单地阅读。它为每个选项的简短评论留出了空间。

答案 1 :(得分:1)

如果使用String.format:

,这将更具可读性
String.format("-Xloggc:gc_%s-%s.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2M", myapp.getFileName(), getDateTime());

您还可以为2M和5值添加额外的占位符:

String.format("-Xloggc:gc_%s-%s.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=%s -XX:GCLogFileSize=%s", myapp.getFileName(), getDateTime(), 5, '2M');
相关问题