투케이2K

205. (java/자바) Arrays toString 형태 바이트 문자열 데이터를 바이트 값으로 변환 및 string 값 출력 실시 - byte to string 본문

Java

205. (java/자바) Arrays toString 형태 바이트 문자열 데이터를 바이트 값으로 변환 및 string 값 출력 실시 - byte to string

투케이2K 2021. 5. 11. 17:26
반응형

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : Eclipse

개발 언어 : Java

/* =========================== */

/* =========================== */

[소스 코드]

 

package ex5;

public class MainActivity15 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("[Arrays toString 형태 바이트 문자열 데이터를 바이트 값으로 변환 및 string 값 출력 실시 - byte to string]");
		
		/*[설 명]
		 * 1. 초기에 저장된 data 변수에서 [ ] 괄호 표시 문자열을 지우고, 공백데이터를 지운다
		 *    (역슬래시 - [\\특수문자] 의미는 특수문자를 지정할때 사용한다)
		 * 2. data 문자열 데이터 길이가 0보다 클때 한개 이상 데이터가 저장된것으로 확인한다
		 * 3. check값이 0보다 클때  한개 초과 데이터가 저장된 경우로 확인한다
		 * 4. ,(콤마) 개수로 데이터를 split 분리 시킨다
		 */
		
		//TODO 초기 Arrays.toString(byte_arr) 형태 데이터를 String 변수에 저장
		String str_data = "[104, 101, 108, 108, 111]";
		
		//TODO 바이트 배열에 저장 실시
		byte byt_arr [] = getByteArray(str_data);
		System.out.println("byte_arr : "+new String(byt_arr));
		
	}//메인 종료
	
	//TODO [Arrays toString 문자열 형태 파싱 메소드]
	public static byte [] getByteArray(String data) {
		System.out.println("원본 data : "+data);
		byte ok_result [] = null;
		try {
			//초기 Arrays.toString 형태로 저장된 문자열에서 불필요한 문자 제거 실시		
			data = data.replaceAll("\\[", ""); //괄호를 지운다(역슬래시 특수문자 지정)
			data = data.replaceAll("\\]", ""); //괄호를 지운다(역슬래시 특수문자 지정)
			data = data.replaceAll(" ", ""); //공백을 지운다
			
			//Arrays.toString 형태는 콤마 기준으로 저장된다 (콤마 개수 체크)
			int check = 0;
			
			for(int i=0; i<data.length(); i++) {
				if(data.charAt(i) == ',') {
					check ++;
				}
			}
			
			//check 개수 확인 후 배열 크기 지정 실시			
			ok_result = new byte [check+1];
						
			//몇개의 데이터가 포함되었는지 확인 실시
			if(data.length() > 0) {
				if(check > 0) { //데이터가 한개 초과 저장된 경우
					for(int j=0; j<=check; j++) { //콤마가 포함된 [기준]으로 문자열을 분리시킨다
						ok_result [j] = Byte.valueOf(data.split("[,]")[j]);
						System.out.println("저장된 데이터 : "+data.split("[,]")[j]);
					}	
				}
				else { //데이터가 한개만 저장된 경우
					ok_result [0] = Byte.valueOf(data);
					System.out.println("저장된 데이터 : "+data);
				}
			}
			else {
				ok_result [0] = 0x00;
				System.out.println("[저장된 데이터를 확인해주세요]");
			}

		}
		catch(Exception e) {
			e.printStackTrace();
		}
		return ok_result;
	}

}//클래스 종료

 

/* =========================== */

[결과 출력]

/* =========================== */

/* =========================== */

[요약 설명]

* 1. 초기에 저장된 data 변수에서 [ ] 괄호 표시 문자열을 지우고, 공백데이터를 지운다

      (역슬래시 - [\\특수문자] 의미는 특수문자를 지정할때 사용한다)

* 2. data 문자열 데이터 길이가 0보다 클때 한개 이상 데이터가 저장된것으로 확인한다

* 3. check값이 0보다 클때 한개 초과 데이터가 저장된 경우로 확인한다

* 4. ,(콤마) 개수로 데이터를 split 분리 시킨다

/* =========================== */

반응형
Comments