-
참조자료형 - 스트링(String)백엔드/자바 2020. 7. 25. 23:15
1. 문자열 (String)
문자열은 다양한 문자를 한 번에 표현할 수 있는 자료형을 말한다.
간단히 말하면 기본 자료형인 char이 모인 집합이라고 보면 된다.
Primitive_Type가 아닌 Reference_Type의 자료형이다.
문자열을 쓸 경우엔 String(대문자 S로 써줘야 함)을 선언한 후 변수명과 변수를 입력하면 된다.
String a = "나는 학생입니다";
다른 참조자료형에 비해 사용하기가 쉽고 기본 자료형을 쓰는 것과 같은 스타일로 쓸 수 있어 편하다.
2. 스트링버퍼 (StringBuffer)
문자열인 String과 기본 목적은 동일하다. 스트링 버퍼도 참조자료형이다.
문자열을 입력할 수 있는 자료형이다.
하지만 String과의 차이점이라면 String과 달리 수정을 하더라도 객체가 바뀌지 않는다.
간단히 말하면 String 변수는 값을 바꿀 경우 변수명은 그대로지만
엄밀히 말해 그 안의 객체는 바뀐 상태다. 즉 메모리 상의 위치가 달라져있다.
반면 StringBuffer는 메모리 상의 위치가 바뀌지 않고 내용을 수정한다.
그렇기 때문에 StringBuffer를 쓰면 String보다 메모리를 아낄 수 있다.
3. 스트링 문자열 비교 (equals)
String의 문자열을 비교해서 동일하면 true를 다르면 false를 리턴해준다.
" 스트링 변수명 + " . " + equals + ( 스트링 변수명 ) "
" 스트링 변수명 + " . " + equals + ( "문자열" ) "
위와 같은 형식이며 스트링 변수끼리도 비교가 되고
스트링 변수와 스트링 자체도 비교가 가능하다.
스트링과 스트링끼리 비교가 가능하기도 하다.
public class Test { public static void main(String[] args) { String a = "java is good"; String b = "COMPUTER IS VERY GOOD"; String c = "java is good"; System.out.println(a.equals(c)); // true 출력 System.out.println(a.equals("java is good")); // true 출력 System.out.println("java is good".equals(a)); // true 출력 System.out.println("java is good".equals("java is good")); // true 출력 System.out.println(a.equals(b)); // false 출력 } }
4. 스트링에서 특정 문자의 인덱스 찾기 (indexOf)
스트링에서 특정 문자의 인덱스 넘버를 찾거나 단어의 시작 인덱스를 찾을 수 있다.
" 스트링 변수명 + " . " + indexOf + ( 찾으려는 단어 또는 문자) " 와 같은 형식이다.
문자열이나 단어를 넣으면 해당 문자열, 단어의 첫 시작 인덱스 값을 반환해준다.
문자 한개를 넣으면 해당 문자의 인덱스를 반환해준다.
단 중복되는 단어, 문자가 있을 경우 문장에서 더 먼저 나타난 단어, 문자의 인덱스를 반환한다.
public class Test { public static void main(String[] args) { String a = "java is good"; System.out.println(a.indexOf("o")); // 9 출력 System.out.println(a.indexOf("oo")); // 9 출력 System.out.println(a.indexOf("ood")); // 9 출력 } }
5. 스트링 문자열 바꾸기 (replace)
스트링 내의 문자열을 바꾸려면 replace 함수를 쓴다.
" 스트링 변수 + " . " + replace + ( "바꾸려는 문자열", "바꾸고 싶은 문자열" ) "과 같은 형식.
" 문자열 + " . " + replace + ( "바꾸려는 문자열", "바꾸고 싶은 문자열" ) "로 문자열끼리 교환 가능.
스트링 변수에 저장된 문자를 바꾸는 것도 가능하고 문자열끼리 교환도 가능하다.
다만 문자열 안에 같은 단어나 문자가 있으면 한번 바꿀 때 모든 문자열의 단어와 문자가 변경된다.
그리고 문자열은 대문자와 소문자를 가리기 때문에 주의해야 한다.
public class Test { public static void main(String[] args) { String a = "Im a Studunt"; System.out.println(a.replace("Studunt", "Police")); // "Im a Police" 출력 System.out.println(a.replace("studunt", "Police")); // "Im a Studunt" 출력 System.out.println("Im a Studunt".replace("Studunt", "Police")); // "Im a Police" 출력 System.out.println("Im a Studunt".replace("Studunt", "Teacher")); // "Im a Teacher" 출력 } }
6. 스트링 문자열 바꾸기 (replaceAll)
스트링 문자를 바꾸는 함수 replace와 문자를 바꿔준다는 기본적으로 동일한 기능을 한다.
단, 차이가 있다면 바꾸자 하는 문자에 기호가 들어가면 replace는 기호를 문자열로 인식한다.
반면 replaceAll은 기호를 정규표현식으로 인식한다.
public class Test { public static void main(String[] args) { String a = "a.bbb.cc"; System.out.println(a.replace(".b", "a.")); // "aa.bb.cc" 출력 System.out.println(a.replaceAll(".b", "a.")); // "aa.a..cc" 출력 } }
7. 스트링에서 특정 부분 뽑아내기 (substring)
substring을 사용하면 원하는 부분을 스트링에서 뽑아서 출력이 가능하다.
변수 지정된 스트링이나 스트링 자체에서도 가능하다.
" 스트링 변수명 + " . " + substring + ( 시작하는 인덱스 넘버, 끝나는 인덱스 넘버 ) " 같은 형식.
" 문자열 + " . " + substring + ( 시작하는 인덱스 넘버, 끝나는 인덱스 넘버 ) " 같은 형식.
public class Test { public static void main(String[] args) { String a = "java is good"; System.out.println(a.substring(1,10)); // "ava is go" 출력 System.out.println("java is good".substring(1,10)); // "ava is go" 출력 } }
8. 스트링에서 소문자, 대문자로 바꾸기 (toUpperCase / toLowerCase)
toUpperCase 나 toLowerCase 함수를 쓰면 문자열을 대문자 또는 소문자로 바꿀 수 있다.
" 스트링 변수명 + " . " + toUpperCase + ( ) " // 소문자에서 대문자
" 문자열 + " . " + toUpperCase + ( ) " // 소문자에서 대문자
" 스트링 변수명 + " . " + toLowerCase + ( ) " // 대문자에서 소문자
" 문자열 + " . " + toLowerCase + ( ) " // 대문자에서 소문자
public class Test { public static void main(String[] args) { String a = "java is good"; String b = "COMPUTER IS VERY GOOD"; System.out.println(a.toUpperCase()); // "JAVA IS GOOD" 출력 System.out.println(b.toLowerCase()); // "computer is very good" 출력 System.out.println("java is good".toUpperCase()); // "JAVA IS GOOD" 출력 System.out.println("COMPUTER IS VERY GOOD".toLowerCase()); // "computer is very good" 출력 } }
'백엔드 > 자바' 카테고리의 다른 글
자바(java)의 정의와 특징 (0) 2020.07.26 참조 자료형 - 배열(array) (0) 2020.07.26 참조자료형 - 리스트(List) (0) 2020.07.24 자바의 자료형 - 기본 자료형 (0) 2020.07.21 자바(java) 메인 메소드(main method)의 의미 (0) 2020.07.21