전체/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(0, 5); // ABCDE secondNo = myString.substring(5, 10); // FGHIJ thirdNo = myString.substring(10, 15); // KLMNO fourthNo = myString.substring(15, 20); // 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+k = 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