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);