wrkbrs

[JAVA] String 타입 (3) String 메소드 예제 1편 - charAt(), getBytes(), valueOf(), toLowerCase() 본문

Java

[JAVA] String 타입 (3) String 메소드 예제 1편 - charAt(), getBytes(), valueOf(), toLowerCase()

zcarc 2018. 11. 14. 09:59

어떤 프로그램이건 문자열은 데이터로서 아주 많이 사용되므로, 그 중요성은 여러 번 강조해도 부족합니다.
저번 자바 문자열 포스팅에서 자바 String 메소드 표를 보았었는데,
이 String 메소드들만 잘 쓸 줄 알아도, 자바에서 문자열을 다루는 데 매우 편리합니다.
이번 포스팅에서는 여러 가지 자바 String 메소드들을 실제로 사용해 봅시다.
어느 정도 비슷한 성질을 가진 메소드들 끼리 묶어 놓았습니다.
기본적인 설명은 예시 코드 안의 주석에 있습니다.

( 아래 포스팅에서 자주 쓰이는 자바 String 메소드를 한 눈에 볼 수 있습니다. )

《 charAt(), getBytes(), valueOf() 》

자바 String 메소드들 중에서 문자열을 배열로 만들어 쓰거나, 여러 가지 타입을 문자열로 만드는 등 주로 자료형(Data Type)과 관련된 메소드들입니다.
(charAt()은 String을 이루고 있는 글자 하나하나를 char 배열 인덱스를 사용하듯이 다룰 수 있게 만드는 점에서 묶음)

import java.io.UnsupportedEncodingException; public class StringMethod { public static void main(String[]args){ String str = "JAVA Programming"; String str2 = "학습 블로그"; // charAt() // 매개값으로 주어진 인덱스의 문자를 리턴함 // String을 이루고 있는 글자 하나하나를 char 배열 인덱스를 사용하듯이 다룰 수 있다는 장점 char c = str.charAt(3); System.out.println("str.charAt(3): " + c); System.out.println("str2.charAt(5): " + str2.charAt(5)); // valueOf() // 기본 타입의 값을 문자열로 변환하는 기능 String str3 = String.valueOf(10); double a = 3.1415; String str4 = String.valueOf(a); String str5 = String.valueOf(true); System.out.println("str3: " + str3 + ", str4: " + str4 + ", str5: " + str5); // getBytes() // 문자열을 바이트 배열로 변환 // 네트워크로 문자열을 전송하거나, 문자열을 암호활 때 문자열을 바이트 배열로 변환함 // 기본 문자셋으로 인코딩과 디코딩 byte []encodingBytes = str.getBytes(); System.out.println("encodingBytes.length: " + encodingBytes.length); String decodingStr = new String(encodingBytes); System.out.println("encodingBytes->decodingStr: " + decodingStr); try { // EUC-KR 문자셋으로 인코딩과 디코딩 byte[] encodingBytes2 = str.getBytes("EUC-KR"); System.out.println("encodingBytes2.length: " + encodingBytes2.length); String decodingStr2 = new String(encodingBytes2, "EUC-KR"); System.out.println("encodingBytes2-> decodingStr2: " + decodingStr2); // UTF-8 문자셋으로 인코딩과 디코딩 byte[] encodingBytes3 = str.getBytes("UTF-8"); System.out.println("encodingBytes3.length: " + encodingBytes3.length); String decodingStr3 = new String(encodingBytes3, "UTF-8"); System.out.println("encodingBytes3->decodingStr3: " + decodingStr3); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

getBytes()는 EUC-KR과 UTF-8 문자셋으로 인코딩된 
바이트 배열을 리턴할 수도 있습니다.
그리고 바이트 배열을 다시 문자열로 변환(디코딩)할 때에는
String 생성자를 잘 사용하면 EUC-KR과 UTF-8 문자셋으로 디코딩도 할 수 있죠.
이에 대한 자세한 내용은 따로 포스팅을 하겠습니다.

《 length() 》

문자열의 길이(문자의 수)를 리턴하는 가장 대표적인 String 메소드이죠.
저 같은 경우는 반복문에 이 메소드를 가장 많이 사용합니다.

public class StringMethod { public static void main(String[]args){ String str = "JAVA Programming"; // 문자열의 길이만큼 반복 for(int i=0; i<str.length(); i++){ System.out.print(str.charAt(i)); } } }

《 equals(), contains() 》

두 문자열을 비교하거나 두 문자열의 포함관계를 규명하는 등에 쓰이는 메소드들이죠.
equals() 메소드는 두 문자열이 같은지 다른지에 대한 판별을 해주는 메소드로,
다른 포스팅에서 깊게 다룬적이 있으므로
링크로 대신하고 넘어가겠습니다.

public class StringMethod { public static void main(String[]args){ String str = "JAVA Programming"; String str2 = "JAVA"; String str3 = "JAVA2"; String str4 = "VA P"; // 주어진 시퀀스가 존재하면 true, 존재하지 않으면 false 리턴 if(str.contains(str2)){ System.out.println("Str2 문자열은 str 문자열에 존재함"); } if(str.contains(str3)){ }else{ System.out.println("Str3 문자열은 str 문자열에 존재하지 않음"); } if(str.contains(str4)){ System.out.println("Str4 문자열은 str 문자열에 존재함"); } } }

《 toLowerCase(), toUpperCase(), equalsIgnoreCase() 》

알파벳 소, 대문자를 변경하는 메소드들입니다.
이 두 메소드는 영어로 된 두 문자열을 대소문자와 관계없이 비교할 때 주로 이용됩니다.
equals() 메소드를 사용하려면 사전에 toLowerCase()와 toUpperCase()로 대소문자를 맞추어야 하지만, equalsIgnoreCase() 메소드를 사용하면 이 작업을 생략할 수도 있습니다.

public class StringMethod { public static void main(String[]args){ String originalStr = "JAVA Programming"; // toLowerCase() // 문자열을 모두 소문자로 바꾼 새로운 문자열을 생성한 후 리턴 String lowerCase = originalStr.toLowerCase(); // toUpperCase() // 문자열을 모두 대문자로 바꾼 새로운 문자열을 생성한 후 리턴 String upperCase = originalStr.toUpperCase(); System.out.println("lowerCase: " + lowerCase + ", upperCase: " + upperCase); String str = "java programming"; System.out.println(str.equals(lowerCase)); // equalsIgnoreCase() System.out.println(str.equalsIgnoreCase(originalStr)); } }

다음 자바 String 메소드 포스팅에서는 이번에 다루었던 메소드들 보다 좀 더 중요한 메소드들을 다룰 예정입니다!

https://blog.naver.com/qbxlvnf11/221109960749