007_문자열 문자 개수 세기

Jan 03, 2024
007_문자열 문자 개수 세기

문제 조건

  1. “AABBBCCCCDDDDD”가 주어졌을때 “A2B3C4D5”로 변환 되어 출력하는 인코딩을 만들어라!
  1. 인코딩으로 변환된 값을 디코딩으로 원래 모습으로 출력되도록 만들어라!
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 } }
출력 결과
notion image
Share article
RSSPowered by inblog