Scanner sc = new Scanner(System.in);
String str = sc.next();
int n = sc.nextInt();
콘솔에서 입력받은 str을 n만큼 반복하여 출력하는 문제.
1. repeat()
repeat() 메서드는 문자열을 쉽게 반복할 수 있음.
for (int i = 0; i < n; i++){
System.out.print(str);
}
for문을 돌려 str을 n번 반복해 출력하는 대신
System.out.println(str.repeat(n));
이렇게 한 줄로 처리할 수 있음.
2. StringBuilder
또는 여러 문자열을 이어붙여 하나의 문자열로 만들고 출력하는 방식도 있음.
StringBuilder sb = new StringBuilder();
for(int i=0; i<n; i++){
sb.append(str);
}
String s = sb.toString();
System.out.println(s);
단순히 String a, String b, String c 를 a + b + c 로 연결할 수는 있음.
그러나 덧셈 연산을 많아지면 성능이 좋지 않아 비효율적임.
덧셈을 할 때마다 새로운 길이의 String 객체가 생겨나서 메모리를 낭비하기 때문.
StringBuilder 객체는 변경 가능한 문자열을 만들어주기 때문에 문자열 덧셈이 필요한 경우 좋은 대안이 됨.
1. StringBuilder 객체 생성
2. .append() 인자로 문자열 연결
3. .toString() 으로 결과값을 출력함.
아까와 같은 경우를 적용해보자면 아래와 같다.
StringBuilder sb = new StringBuilder();
sb.append(a).append(b).append(c);
콘솔 출력은 두가지 방법으로 할 수 있다. 결과는 같다.
String result = sb.toString();
System.out.println(result);
System.out.println(sb);