2016-06-02 6 views
2

특정 문자열을 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)

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

'f = 6'에 대해 7 자 블록을 출력하도록 하시겠습니까? –

답변

3

하면 PrintWriterSystem.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('|'); 
} 
+1

당신은 새로운 PrintWriter (System.out, true)에 자동 플러시 thx를 사용하고 대신 pw.print ('|')를 사용할 수 있습니다. –

+0

Thanks @NicolasFilotto, done. –

+0

고마워요, 그건 속임수입니다. 그래도'pw.flush()'를 써야합니다. 어쨌든, 나는 이것을 검색 메커니즘의 일부로 사용하여 코드의 출력을 다른 문자열과 비교합니다. – conquistador

관련 문제