알고리즘과 웹 개발에서 기본이 되는 문자열 관련 함수를 정리해보자.
equals()두 개의 문자열이 동일한 값을 가지고 있는지를 비교하여 결과값 리턴 함수
객체끼리 내용 비교
주소의 값을 비교
예제로 == 과 equals() 의 차이점을 비교해보자
public class Test {
public static void main(String[] args) throws Exception{
String str1 = "abc";
String str2 = str1;
String str3 = new String("abc");
// == 연산자는 주소를 비교
System.out.println(str1 == str2); // true
// str2 에 st1 값을 넣었으므로 주소 같이 공유
System.out.println(str1 == str3); // false
// str1 과 str3는 각각 생성 되었으므로 주소가 다름
// equals() 는 내용을 비교
System.out.println(str1.equals(str2)); // ture
System.out.println(str1.equals(str3)); // true
// 내용을 비교하기떄문에 abc 내용이 같으므로 true 반환
}
}
그래서 문자열을 비교할 때는 == 보다는 equals 를 사용
문자열 길이 반환
문자의 시작번호또는문자의 시작과 끝을 지정
-> 문자열 중 특정 부분을 뽑아낼 때 경우 사용
public class Test{
public static void main(String[] args) {
String example = "안녕하세요";
String target1 = example.substring(0);
String target2 = example.substring(1, 4); // (1, 2, 3) 인덱스까지 출력
String target3 = example.substring(4);
System.out.println(target1); // 안녕하세요
System.out.println(target2); // 녕하세
System.out.println(target3); // 요
}
}
- toUpperCase() : 문자열 모두 대문자 변경
- toLowerCase() : 문자열 모두 소문자 변경
문자열에서 특정 문자가 시작되는 인덱스 리턴
특정 문자를 원하는 문자로 변경하고 싶을 경우 사용
지정한 문자로 문자열을 나눌 수 있다. 받는 변수가 배열로 선언되어야 한다.
String str = "abc#def#ghi"; String[] splitStr = str.split("#");
String 타입의 문자열에서 특정 문자를 char 타입으로 변환할 때 사용하는 함수
public class Test{
public static void main(String[] args) {
String example = "안녕하세요";
char target1;
char target2;
char target3;
target1 = example.charAt(0);
target2 = example.charAt(1);
target3 = example.charAt(2);
System.out.println(target1); // 안
System.out.println(target2); // 녕
System.out.println(target3); // 하
}
}
String 관련 문제를 풀 때 꼭 알아야 하는 함수
int num = str.charAt(i) - '0';
String numbers = "12345";
// 숫자로 구성된 String 변수에서 특정 숫자를 바로 int 변수로 가져올 수 있다.
int targetNumber1 = numbers.charAt(0) - '0'; // 1
int targetNumber2 = numbers.charAt(1) - '0'; // 2
int targetNumber3 = numbers.charAt(2) - '0'; // 3
System.out.println("targetNumber1 = "+targetNumber1);
System.out.println("targetNumber2 = "+targetNumber2);
System.out.println("targetNumber3 = "+targetNumber3);
int test1 = 10 - targetNumber1; // 9
int test2 = 10 - targetNumber2; // 8
int test3 = 10 - targetNumber3; // 7
System.out.println("10 - targetNumber1 = "+test1);
System.out.println("10 - targetNumber2 = "+test2);
System.out.println("10 - targetNumber3 = "+test3);