문자열을 입력받아서 문자 하나하나를 원하는 횟수만큼 반복하기
첫번째 시도 : 문자열을 배열로 받아서 그대로 반복문 돌리기
실패
public class Main {
static SimpleInput si;
public static void main(String[] args) {
String my_string = si.input("문자 영어로 입력 : ");
int n = Integer.parseInt(SimpleInput.input("반복할 횟수 입력 : "));
String answer = "";
//글자 배열로 받기
ArrayList<String> answers = new ArrayList<>();
answers.add(my_string);
//받은 글자별 반복누적
for (String s : answers) {
for (int j = 1; j <= n; j++) {
answer += s;
answer.toString();
}
}
System.out.println(answer);
return;
}
}
이렇게 써도, 결국 배열 안에 String이 한글자씩 저장되지 않는다.
전체의 string이 저장되기 때문에 아래와 같은 결과가 나온다.

받은 문자열을 배열로 나누는 메서드는 Split() 이다.
split("문자열 안의 한 문자", int 첫번째 요소의 문자를 분기로 얼마나 나눌지의 횟수)이다.
@를 기점으로 @가 아무리 많아도 3번까지만 나누고 싶을때는 배열의 index가 낮은 순부터 문자가 삭제되며 나누어진다.

// Java program to demonstrate working of split(regex,
// limit) with high limit.
public class GFG {
public static void main(String args[])
{
String str = "geekssforgeek@ss";
String[] arr = str.split("");
for (String a : arr)
System.out.println(a);
}
}
""을 기점으로 문자열을 받은 배열의 길이만큼 나누고 싶으면 문자열 하나씩 나눌 수 있다.
(왜 공백을 기점으로 한문자씩 자동으로 나눠지는지 알고리즘 파악을 못했다. 추후 정리하여 수정업로드 하겠다.)
두번째 시도 : 위의 방법에서 split을 추가하여 반복문 돌리기 성공
class Solution {
public String solution(String my_string, int n) {
String answers = "";
//문자열 하나하나 요소별 나누어 배열에 넣기
String [] arr = my_string.split("");
for (String a : arr) {
for (int i = 1; i <= n; i++) {
answers += a;
}
}
return answers;
}
}
참고링크
https://www.geeksforgeeks.org/split-string-java-examples/