Java 将字符串分组为给定长度

Java 将字符串分组为给定长度,java,arrays,Java,Arrays,我编写了一个简单的代码,将某个字符串分组为N个长度,然后将其打印到控制台,在控制台中,字符组被“|”字符分割。有没有更简单的方法?顺便说一下,这是我的代码 String d = "stackoverflow.com"; char[] x = d.toCharArray(); StringBuilder ad = new StringBuilder(); int r = 0; int f = 6; /* f = 1; 2 characters by group f = 2; 3 character

我编写了一个简单的代码,将某个字符串分组为N个长度,然后将其打印到控制台,在控制台中,字符组被“|”字符分割。有没有更简单的方法?顺便说一下,这是我的代码

String d = "stackoverflow.com";
char[] x = d.toCharArray();
StringBuilder ad = new StringBuilder();
int r = 0;
int f = 6;
/*
f = 1; 2 characters by group
f = 2; 3 characters by group
...
f = n; (n+1) characters by group
*/
for (char a : x) {
    if (r == f) {
        ad.append(a);
        System.out.print(ad+"|");
        ad.delete(0, 1);
    } else {
        ad.append(a);
        r++;
    } 
}
其输出为(f=6)


如果将
System.out
包装在中,则可以使用
PrintWriter.write
的重载来打印字符串的一部分:

PrintWriter pw = new PrintWriter(System.out, true);
for (int i = 0; i <= d.length() - f; ++i) {
  pw.write(d, i, f);
  pw.print('|');
}
PrintWriter pw=新的PrintWriter(System.out,true);

对于(int i=0;我只是想检查一下-您是否打算为
f=6
打印出7个字符的块?您可以使用auto-flush thx来创建新的PrintWriter(System.out,true),并使用pw.print(“|”)来代替。谢谢,这就解决了问题。我仍然需要将
pw.flush()
不过,无论如何,我将把它作为搜索机制的一部分,将代码的输出与不同的字符串进行比较。
PrintWriter pw = new PrintWriter(System.out, true);
for (int i = 0; i <= d.length() - f; ++i) {
  pw.write(d, i, f);
  pw.print('|');
}