Java 바이트 변환 getBytes(), equals(), trim()




결과

결과




코드

public static void main(String[] args) {
		String s = new String(" ab cde");
		String s2 = new String(" ab cde");
		
		System.out.println("문자열 : " + s);
		System.out.println("앞뒤 공백 제거 전 : " + s);
		System.out.println("앞뒤 공백 제거 후 : " + s.trim());
		System.out.print("객체 비교 : ");
		System.out.println(s == s2);
		System.out.println("문자열 비교 : " + s.equals(s2) + "\n");
		
		System.out.println("--- 바이트 변환 ---");
		try {
		// byte[] b = s.getBytes("EUC-KR");
		byte[] b = s.getBytes("UTF-8");
		
		System.out.print("바이트 형식 : ");
		for(byte t : b) {
			System.out.print(t + ", ");
		}
		
		String re = new String(b, "UTF-8");
		System.out.println("\n복구 : " + re);
		
		}catch(Exception e) {
			e.printStackTrace();
		}
	}





String trim() : 앞뒤 공백 제거

- 문자열 앞과 뒤의 있는 공백을 제거해 준다.


- 이후 입력 받은 문자열을 비교하거나 할 때 공백이 포함되어 원하는 결과를 얻을 못 얻을 수 있다.

 따라서 이같은 가능성이 있는 곳에는 사용해주어야 좋다. 단, 무분별한 사용은 낭비이다.





boolean equals(Object obj) : 문자열 비교

- 위 결과를 보면 '=='를 사용하여 객체를 비교하였을 시 false로 두 문자열이 다르다고 나온다. 이는 new를 사용하여서 다른 객체로 만들어주었기 때문이다.


- 대신 equals를 사용하면 그 객체의 문자열만을 비교하여서 true가 나오게 된다.





byte[] getBytes(String cs) : 받은 문자형식으로 변환된 byte 배열 생성

- 네트워크로 문자열을 전송하거나, DB의 이미지를 저장하거나 할 때 byte 배열 형식으로 변환할 때 사용한다.


- 'EUC-KR'은 영어는 1byte, 한글은 2byte로 변환한다.


- 'UTF-8'은 영어는 1byte, 한글은 3byte로 변환한다.


- 특정 형식으로 변환할 때는 UnsupportedEncodingException이 발생할 수 있어 try~catch문으로 예외처리를 해야만 사용할 수 있다.


- 다시 String으로 만들 때는 new String(byte[] b, String cs) 으로 디코딩하면 된다.





+ Recent posts