String 클래스는 문자열의 길이, 문자열 검색, 문자열 변환 및 연결 문자열 수정이나 내용 비교 등 매우 풍부한 메서드를 제공한다. 밑의 표는 줄이고 줄여 가장 대표적 인것만 뽑아낸 것이다. 나중에 자바를 이용해 프로젝트를 수행하다 보면 다음 메서드들은 적어도 한 번 이상 사용하게 될 것이다.
표가 너무 복잡하다면 다음과 같이 간략하게만 알아 두자.
length() : 문자열의 길이를 리턴한다
charAt() : 문자열에서 특정 인덱스에 위치해 있는 문자를 알아 낸다.
indexOf() : 문자열에서 특정 문자나 특정 문자열을 앞에서부터 찾아 위칫값을 알아낸다.
lastindexOf() : 문자열에서 특정 문자나 특정 문자열을 뒤에서부터 찾아 위칫값을 알아낸다.
String.valueOf() : 기본 자료형을 문자열로 바꾸는 정적 메서드다.
concat(): 2개의 문자열을 연결한다. + 연산자와 동일한 기능을 수행한다.
getBytes(): 문자열을 byte 배열로 변환한다. 자바 입출력 과정에서 주로 사용한다.
toCharArray() : 문자열을 char 배열로 변환한다. 자바 입출력 과정에서 주로 사용한다.
// 문자열 길이
String str1 = "Hello Java!";
String str2 = "안녕하세요! 반갑습니다.";
System.out.println(str1.length());
System.out.println(str2.length()); // 한글, 영문 구분 없이 한 문자당 1개의 크기를 가짐
System.out.println();
// 문자열 검색
// @charAt()
System.out.println(str1.charAt(1));
System.out.println(str2.charAt(1)); //한글 영문 구분 없이 인덱스 1 위치의 문자
System.out.println();
// @indexOf(), lastIndexOf()
System.out.println(str1.indexOf('a')); // 앞에서부터 첫 번째 'a'가 위치한 인덱스
System.out.println(str1.lastIndexOf('a')); // 뒤에서부터 첫 번째 'a'가 위치한 인덱스
System.out.println(str1.indexOf('a',8));
System.out.println(str1.indexOf("Java"));
System.out.println(str1.lastIndexOf("Java"));
System.out.println(str2.indexOf("하세요"));
System.out.println(str2.lastIndexOf("하세요"));
System.out.println(str1.indexOf("Bye")); // 해당 문자(열)이 없는 경우 -1 리턴
System.out.println(str2.lastIndexOf("고맙습니다"));
System.out.println();
// 문자열 변환 및 연결
// @String.valueOf(기본 자료형) : 기본 자료형 -> 문자열 변환
String str3 = String.valueOf(2.3);
String str4 = String.valueOf(false);
System.out.println(str3);
System.out.println(str4);
// @concat() : 문자열 연결
String str5 = str3.concat(str4);
System.out.println(str5);
//String.valueOf() + concat()
String str6 = "안녕" + 3;
String str7 = "안녕".concat(String.valueOf(3));
// 문자열을 byte[] 또는 char[]로 변환
String str8 = "Hello Java!";
String str9 = "안녕하세요";
// @getBytes() : 문자열 -> byte[] 변환
byte[] array1 = str8.getBytes();
byte[] array2 = str9.getBytes();
System.out.println(Arrays.toString(array1));
System.out.println(Arrays.toString(array2));
// @tocharArray() : 문자열 -> char[] 변환
char[] array3 = str8.toCharArray();
char[] array4 = str9.toCharArray();
System.out.println(Arrays.toString(array3));
System.out.println(Arrays.toString(array4));
간략하게 설명하면 다음과 같다
toLowerCase(): 영문 문자를 모두 소문자로 변환한다.
toUpperCase(): 영문 문자를 모두 대문자로 변환한다.
replace(): 일부 문자열을 다른 문자열로 대체한다.
substring():문자열의 일부만을 포함하는 새로운 문자열 객체를 생성한다.
split():특정 기호를 기준으로 문자열을 분리한다.
trim():문자열의 좌우 공백을 제거한다.
equals():두 문자열의 위칫값이 아닌 실제 데이터값을 비교한다. 이때 대소문자를 구분한다.
equalsIgnoreCase(): 두 문자열의 위칫값이 아닌 실제 데이터값을 비교한다. 이때 대소문자를 구분하지 않는다.
// 문자열 수정
// @ toLowercase(), toUpperCase()
String str1 = "Java Study";
System.out.println(str1.toLowerCase());
System.out.println(str1.toUpperCase());
// @replace()
System.out.println(str1.replace("Study","공부")); // "Study" 문자열을 "공부"로 변경
// @substring()
System.out.println(str1.substring(0,5)); // 0 <= 인덱스 < 5의 문자열
// @split()
String[] strArray = "abc/ def-ghi jkl" .split("/|-| ");
System.out.println(Arrays.toString(strArray));
// @trim()
System.out.println(" abc ".trim());
System.out.println();
// 문자열의 내용 비교
String str2 = new String("Java");
String str3 = new String("Java");
String str4 = new String("java");
// @stack 메모리 비교(==): 위치(번지) 비교
System.out.println(str2 == str3);
System.out.println(str3 == str4);
System.out.println(str4 == str2);
// @equals(), equalsIgnoreCase() : 내용 비교
System.out.println(str2.equals(str3));
System.out.println(str3.equals(str4));
System.out.println(str3.equalsIgnoreCase(str4));
결과