2016-06-02 7 views
2

Ich habe einen einfachen Code geschrieben, der eine bestimmte Zeichenkette in N Länge gruppiert und dann an die Konsole ausgibt, wo die Zeichengruppe durch "|" Charakter. Gibt es einen einfacheren Weg, dies zu tun? Das ist übrigens mein Code.Gruppenkettenzeichen in eine gegebene Länge

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++; 
    } 
} 

Sein Ausgang wird (f = 6)

stackov|tackove|ackover|ckoverf|koverfl|overflo|verflow|erflow.|rflow.c|flow.co|low.com| 
+0

Nur um zu überprüfen - sollen Sie Blöcke von 7 Zeichen für 'f = 6' ausdrucken? –

Antwort

3

Wenn Sie System.out in einem PrintWriter wickeln, können Sie die Überlastung von PrintWriter.write verwenden, die einen Teil der Zeichenfolge druckt:

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

können Sie thx automatisch zu neuen PrintWriter (System.out, true) verwenden und stattdessen pw.print ('|') verwenden –

+0

Danke @NicolasFilotto, fertig. –

+0

Danke, das macht den Trick. Ich muss trotzdem 'p.flush()' setzen. Wie auch immer, ich werde es als Teil des Suchmechanismus verwenden und die Ausgabe dieses Codes mit verschiedenen Strings vergleichen. – conquistador

Verwandte Themen