문제 조건
- “AABBBCCCCDDDDD”가 주어졌을때 “A2B3C4D5”로 변환 되어 출력하는 인코딩을 만들어라!
- 인코딩으로 변환된 값을 디코딩으로 원래 모습으로 출력되도록 만들어라!
String 심화를 참고하여 문제를 완성 시켜보자!
package ex08.example; public class StringEx01 { public static String encoding(String data) { String result = ""; char sameStr = ' '; int count = 0; for (int i = 0; i < data.length(); i++) { for (int j = 0; j < data.length(); j++) { if (sameStr == data.charAt(i)) { break; } if (data.charAt(i) == data.charAt(j)) { count++; } } sameStr = data.charAt(i); if (sameStr == data.charAt(i)) { if (count != 0) { result = result + sameStr + Integer.toString(count); } count = 0; } } return result; } public static String decoding(String data) { String result = ""; int number; String[] separation = data.split(""); for (int i = 0; i < separation.length; i++) { if (i % 2 != 0) { number = Integer.parseInt(separation[i]); for (int j = 0; j < number; j++) { result = result + separation[i - 1]; } } } return result; } public static void main(String[] args) { String data = "AABBBCCCCDDDDD"; // Byte -> 14Byte System.out.println(encoding(data)); System.out.println(decoding(encoding(data))); // 인코딩 A2B3C4D5 // 디코딩 AABBBCCCCDDDDD } }
출력 결과
Share article