为了账号安全,请及时绑定邮箱和手机立即绑定

如何在一定行长后转到新行?

如何在一定行长后转到新行?

倚天杖 2021-08-25 18:21:07
我有一个数组,它在达到某个字符限制后需要转到新行,但我不希望它截断数字。我尝试将数组转换为字符串以去除括号和空格,但我似乎无法将字符串转到正确位置的新行。我该如何实现?谢谢!当前代码(这是一团糟,我尝试了其他帖子中的许多不同解决方案)System.out.println(n + " (" + numDivisors + " proper divisors)");    System.out.print("...proper divisors: ");    String temp = Arrays.toString(properDivisors).replace("]", ",").replace(" ", "");    String finalDiv = temp.substring(1, temp.length());    if (finalDiv.length() > len) {        for (int i = len; i <= len; i--){            if (finalDiv.charAt(len) == ',') {                finalDiv = finalDiv.replaceAll(".{" + i + "}", "$0\n\t\t    ");                System.out.print(finalDiv);            }        }    } else {        System.out.println(finalDiv);    }期望输出86268 (47 proper divisors)                                                               ...proper divisors: 1,2,3,4,6,7,12,13,14,21,26,28,39,42,52,78,79,84,91,                    156,158,182,237,273,316,364,474,546,553,948,1027,                    1092,1106,1659,2054,2212,3081,3318,4108,6162,6636,                    7189,12324,14378,21567,28756,43134,
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

如果你构建一个字符串会更容易,并且只有当你超过行长度时才打印它。不要 munge Arrays.toString(),只需自己构建字符串表示。


String prefix = "...proper divisors: ";

// Same number of chars as prefix, just all spaces.

String emptyPrefix = prefix.replaceAll(".", " ");

for (int i = 0; i < properDivisors.length;) {


  // Take as many of the items in the array as you can, without exceeding the

  // max line length.

  StringBuilder sb = new StringBuilder(prefix);

  for (; i < properDivisors.length; ++i) {

    int lengthBefore = sb.length();


    // Append the next item, and comma, if it would be needed.

    sb.append(properDivisors[i]);

    if (i + 1 < properDivisors.length) sb.append(",");


    if (sb.length() > maxWidth) {

      // Truncate back to the length before appending.

      sb.setLength(lengthBefore);

      break;

    }

  }

  System.out.println(sb);


  // Blank out the prefix, so you will print leading spaces on next line.

  prefix = emptyPrefix;

}


查看完整回答
反对 回复 2021-08-25
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信