전체/Java

자바 동적변수 생성 테스트. 해결방법은?

effortDev 2018. 5. 30. 17:25


자바 동적변수 생성 테스트, 해결방법은?


1. 첫번째 시도



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 엄청 긴 숫자와 문자가 섞인 문자열이 있는데 
// 5자리씩 잘라서 이 자릿수가 맞는지 검증해야 했었다.
// 어떻게하면 효율적으로 문자열을 잘라내 저장하여 활용할수 있는지 테스트 해보았다.
 
String myString = "ABCDEFGHIJKLMNOPQRSTUVWXY";
 
// 1번째 방법 시도 : 필요한 변수를 모두 선언한 뒤 값 넣기
String firstNo ="";
String secondNo ="";
String thirdNo ="";
String fourthNo ="";
 
firstNo      = myString.substring(05);       // ABCDE
secondNo     = myString.substring(510);       // FGHIJ
thirdNo      = myString.substring(1015);    // KLMNO
fourthNo      = myString.substring(1520);    // PQRST
 
// 각각의 값을 다르게 관리하기 위해 매번 필요한 변수명을 만들어줘야하나 라는 생각이 들어.
cs


결과


firstNo  : ABCDE

secondNo : FGHIJ

thirdNo  : KLMNO

fourthNo : PQRST



2. 두번째 시도



1
2
3
4
5
6
7
8
9
10
// 2번째 방법 시도 : 자바로 동적변수를 만들수 있나?
for(int i=0,  j=0; i<=3; i++, j=j+5) {
    // ABCDE , FGHIJ, KLMNO, PQRST, UVWXY
    // String a0 = "ABCDE", String a1 = "FGHIJ", a2, a3 ... 
    // 동적변수 선언 및 5자리씩 값을 초기화 해보려고 시도
    
    String k = String.valueOf(i); // i를 String으로 치환후 k로 재선언
    String a+= myString.substring(j, j+5);
    // 동적변수 만들기 불가 .. 같은 String이어도 +기호를 사용해 만들순 없었다.
}
cs


결과


FAIL



3. 세번째 시도



1
2
3
4
5
6
7
8
//  3번째 방법 시도 : Map을 이용해봄.
HashMap<Integer, String> myHashMap = new HashMap<Integer, String>();
for(int i=0,  j=0; i<=3; i++, j=j+5) {
    myHashMap.put(i, myString.substring(j, j+5));
}
myHashMap.forEach((k,v)->{
    System.out.println("key: "+k+"value: "+v); // 해결가능
});
cs


결과


key: 0 value: ABCDE

key: 1 value: FGHIJ

key: 2 value: KLMNO

key: 3 value: PQRST

key: 4 value: UVWXY