안녕하세요. 오늘은 String클래스를 사용해 보겠습니다.
String클래스는 문자열을 다룰 때 주로 사용합니다.
문자열을 String클래스로 사용 할 때 두가지 방법이 있는데요, 첫번째는 문자열의 주소를 저장하는방법과 두번째는 String객체를 만들어서 객체에 문자열을 넣고 객체의 주소를 저장하는 방법이 있습니다.
첫번째 방법 : String st_address = "AAA";
두번째 방법 : String st_object = new String("AAA");
st1과 st2와 st3는 같은 주소의 "AAA"를 가리키게 됩니다.
그러나 아래에 객체를 만든 "AAA"는 서로 다른 주소를 가리키게 됩니다.
이 두가지 방법은 문자열을 비교할 때 차이가 납니다.
문자열을 비교할 때 ==연산자 와 equals함수를 사용하게 되는데 ==연산자는 실제 char데이터를 비교하지 않고 주소값을 비교합니다. 그러나 equals는 실제 char데이터를 비교하게 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class main { public static void main(String args[]) { String st1 = "AAA"; String st2 = "AAA"; String st3 = "AAA"; if (st1 == st2) System.out.println("1.참"); else System.out.println("1.거짓"); if (new String("AAA") == "AAA") System.out.println("2.참"); else System.out.println("2.거짓"); if (st1.equals("AAA")) System.out.println("3.참"); else System.out.println("3.거짓"); if (new String("AAA").equals("AAA")) System.out.println("4.참"); else System.out.println("4.거짓"); } } | cs |
실행결과
1.참
2.거짓
3.참
4.참
String 클래스 메소드
String클래스에서 자주 사용하는 메소드에 대해 알아보겠습니다.
문자열 자르는 함수
substring(int beginIndex), substring(int beginIndex,int endIndex)
반환형 : String
beginIndex : 시작 인덱스
endIndex : 마지막 인덱스
1 2 3 4 5 6 7 8 | public class main { public static void main(String args[]) { String st = "123456789"; System.out.println(st.substring(3)); System.out.println(st.substring(3, 4)); } } | cs |
1 2 3 4 5 6 7 | public class main { public static void main(String args[]) { String st = "123"; System.out.println(st.concat("456789")); } } | cs |
실행결과
123456789
문자열 길이 출력 함수
length()
반환형 : int
1 2 3 4 5 6 | public class main { public static void main(String args[]) { String st = "안 녕 하 세 요"; System.out.println(st.length()); } } | cs |
실행결과
9
문자열 나누는 함수
split(String regex), split(String regex, int limit)
반환형: String[]
regex : 나눌 기준
limit : 결과 한계점
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class main { public static void main(String args[]) { String st = "안 녕 하 세 요"; String[] st_a1 = st.split(" "); String[] st_a2 = st.split(" ", 2); for (int i = 0; i < st_a1.length; i++) System.out.println(st_a1[i]); for (int i = 0; i < st_a2.length; i++) System.out.println(st_a2[i]); } } | cs |
실행결과
안
녕
하
세
요
안
녕 하 세 요
st_a1배열에 st문자열을 공백을 기준으로 나눠서 저장하였습니다.
st_a2배열에 st문자열을 공백을 기준으로 나눠서 저장하고 한계점을 2번째 인덱스로 하였습니다.(2번째 인덱스는 녕)
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
자바 인터페이스(interface) (0) | 2017.12.05 |
---|---|
자바 상속이란? (0) | 2017.12.01 |
자바 메소드 오버라이딩이란(Method Overriding) (0) | 2017.12.01 |
자바 메소드 오버로딩이란(Method Overloading) (0) | 2017.11.24 |
자바 인스턴스 변수 vs 클래스 변수 (0) | 2017.11.24 |