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) 으로 디코딩하면 된다.
'JAVA > 기초' 카테고리의 다른 글
Java int -> String, String -> int (0) | 2020.03.23 |
---|---|
Java 문자열 변경, 자르기 replace(), substring(), split() (0) | 2020.03.23 |
Java String charAt(), indexOf(), length() 등 (0) | 2020.03.22 |
Java Overloading vs. Overriding [오버로딩 vs. 오버라이딩] (0) | 2020.03.19 |
Java Annotation 어노테이션 (0) | 2020.03.19 |