• 다음은 String.format() 기반 해법이다.
String result = String.format("%0" + 5 + "d", 0)
.replace("0", TEXT);
• 다음은 char[] 기반 해법이다.
String result = new String(new char[5]).replace("\0", TEXT);
TIP ≣ 외부 라이브러리 지원을 받으려면 아파치 커먼즈 랭의 StringUtils.repeat()와 구아바의 Strings.repeat()를 활용한다.
같은 부분 문자열로만 이어진 문자열인지 검사하려면 다음 메서드를 사용한다.
public static boolean hasOnlySubstrings(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length() / 2; i++) {
sb.append(str.charAt(i));
String resultStr = str.replaceAll(sb.toString(), "");
if (resultStr.length() == 0) {
return true;
}
}
return false;
}
위 해법은 주어진 문자열의 절반을 순회하며 StringBuilder에 원래 문자열을 한 문자씩 이어 붙이면서 해당 부분 문자열을 전부 ""로 치환해본다. 치환 결과가 빈 문자열이면 주어진 문자열이 같은 부분 문자열로만 이어졌다는 뜻이다.