Coding Note/Java
Java 4-2) String 클래스 _ 문자열 함수 알아보기 (equals / indexOf, lastIndexOf / length / replace / split / substring / toUpperCase, toLowerCase / trim / charAt / contains
푸린이
2021. 12. 11. 20:07
* String
- Wrapper Class
- char []
- 문자열을 편집, 정보취득 등
String str;
- String : class 명칭
- str : class 변수 == object(객체)
str = "안녕하세요";
System.out.println(str);
// 문자열의 결합
String str1 = new String("안녕하세요"); // 정석
String str2 = "반갑습니다"; // 줄여씀
String str3 = str1 + str2;
System.out.println(str3);
str3 = str3 + "건강하세요";
System.out.println(str3);
* equals : 문자열 비교 함수
String str4 = "world";
String str5 = "worl";
str5 = str5 + "d";
// 문자열을 ==로 비교
if(str4 == str5) {
System.out.println("== 같은 문자열입니다");
} else {
System.out.println("== 다른 문자열입니다");
}
// boolean 활용해 equals 적용
boolean b = str4.equals(str5);
if(b == true) {
System.out.println("같은 문자열입니다");
} else {
System.out.println("다른 문자열입니다");
}
// 문자열 비교 : equals
if(str4.equals(str5)) {
System.out.println("같은 문자열입니다");
} else {
System.out.println("다른 문자열입니다");
}
- 문자열끼리 비교할 땐 ==말고 equals 사용
* indexOf : 문자의 위치를 돌려주는 함수 / lastIndexOf : 뒤에서부터 조사
- 공백포함, 맨앞부터 0번으로 숫자 위치를 알려줌
- lastIndexOf는 뒤에서부터 조사하지만 위치는 앞에서부터 0
String str = "hello world";
int index = str.indexOf("h");
System.out.println(index);
int lastIndex = str.lastIndexOf("l");
System.out.println(lastIndex);
* length : 문자열의 길이 반환
String str = "hello world";
int len = str.length();
System.out.println(len);
- length()의 괄호가 빈 것은 들어가는 값이 없고, 나오는 값만 있다는 뜻
* replace : 문자열 교체
String str = "A*B*C*D";
String repStr = str.replace("*", "-"); // *를 -로 교체
System.out.println(repStr);
* split : 지정된 문자로 문자열을 나누고 배열로 반환
String str = "홍길동-24-2001/05/14-서울시"; // 데이터가 4개니까 배열로 받아야함
String spStr[] = str.split("-");
for (int i = 0; i < spStr.length; i++) {
System.out.println(spStr[i]);
}
- token : 데이터를 나누는 기호(위 코드에선 '-')
System.out.println(spStr[0]);
System.out.println(spStr[1]);
System.out.println(spStr[2].replace("/", "-"));
System.out.println(spStr[3]);
- 날짜를 2001/05/14 → 2001-05-14로 변경
* substring : 문자열을 범위로 자름
- substring(시작위치, 끝나는위치)
- 시작위치는 포함, 끝나는 위치는 포함하지 않고 그 앞까지만 받음
String str = "안녕 반가워요 건강해요";
String subStr = str.substring(3, 7);
System.out.println(subStr);
* toUpperCase : 모두 대문자 / toLowerCase : 모두 소문자
// toUpperCase : 모두 대문자
String str = "abcDEF";
String upStr = str.toUpperCase();
System.out.println(upStr);
// toLowerCase : 모두 소문자
String lowStr = str.toLowerCase();
System.out.println(lowStr);
* trim : 문자열의 앞뒤 공백을 제거, 중간 공백은 제거X
String str = " java java java ";
String tStr = str.trim();
System.out.println(tStr);
* charAt : 해당 위치의 문자를 char형으로 반환
String str = "가나다라마";
char c = str.charAt(2);
System.out.println(c);
- 2번째 위치의 글자는 '다'
* contains : 문자열 안의 단어가 포함되어 있는지
String str = "서울시 마포구 서교동";
boolean b1 = str.contains("서울"); // 띄어쓰기 있으면 false로 나옴
boolean b2 = str.contains("대구");
System.out.println(b1);
System.out.println(b2);