문자열 비교
str1과 str2는 같다.
str3과 str4는 다르다.
1. 문자열 동등 비교
- 둘 다 true가 나오는 것을 확인할 수 있다.
- if문을 활용한 문자열 동등 비교
- if문을 활용한 문자열 동등 비교2
2. 대소문자를 무시한 문자열 동등 비교
- false가 나온다.
- 대소문자 무시한 문자열 동등 비교 메소드를 활용하면 true가 나온다.
3. 문자열 길이 반환
- 문자의 공백도 길이에 포함한다.
4. 특정 위치의 문자만 반환
- 특정위치(=인덱스(index)라고 함.)
- 글자마다 부여된 정수값이 있다.
- 0으로 시작한다.
- String name = "seratpfk";의 특정 위치의 문자만 반환한다.
5. 문자열의 일부 문자열(String)을 반환(중요!)
1) substring(begin): 인덱스 begin(포함)부터 끝까지 반환
2) substring(begin, end): 인덱스 begin(포함)부터 인덱스 end(미포함)까지 반환
ex) substring(0, 1): 한글자만 출력. 0(포함), 1(미포함)
- System.out.println(name.substring(0, 1)); : 0번 위치만 출력
- System.out.println(name.substring(1)); : 1번 위치에서 끝까지 출력
6. 특정 문자열을 찾아서 해당 인덱스(int)를 반환
- 발견된 첫 번째 문자열의 인덱스를 반환.
1) indexOf
(1) 발견된 첫 번째 문자열의 인덱스를 반환
(2) 발견된 문자열이 없는 경우 -1을 반환2) lastIndexOf
(1) 발견된 마지막 문자열의 인덱스를 반환
(2) 발견된 문자열이 없는 경우 -1을 반환
7. 문자열이 특정 패턴으로 시작하는가?
- 문자열이 특정 패턴으로 시작하는지 여부를 boolean(true, false) 반환
startWith(문자열)
- String name = "우영우";는 민으로 시작하지 않기 때문에
'민씨가 아닙니다'가 출력된다.
8. 문자열이 특정 패턴으로 끝나는가?
- 문자열이 특정 패턴으로 끝나는지 여부를 boolean(true, false) 반환
endWith(문자열)
9. 문자열이 특정 패턴을 포함하는가?
- 문자열이 특정 패턴을 포함하는지 여부를 boolean(true, false) 반환
10. 불필요한 공백 제거(좌우 공백)
11. 대소문자 변환하기
- toUpperCase(): 대문자로 변환하기
- toLowerCase(): 소문자로 변환하기
출력:
BEST OF BEST
best of best
12. 찾아 바꾸기
- replace(old, new): old를 new로 변환
- source 자체가 바뀐 것이 아님.
13. 빈 문자열인지 여부를 검사한 뒤 boolean(true, false) 반환
출력:
빈 문자열
연습문제1
파일이름을 파일명과 확장자로 분리하라
단, jpg, git, png 이미지인 경우에만 작업을 진행한다.
fileName = apple, String extName = jpgString fullName = "apple.jpg"; String fileName = ""; String extName = "";
int idxOfDot = fullName.lastIndexOf(".");
fileName = fullName.substring(0, idxOfDot);
extName = fullName.substring(idxOfDot + 1);
System.out.println(fileName);
System.out.println(extName);
출력:
apple
jpg
extName = fullName.substring(idxOfDot + 1);
:idxOfDot + 1을 해야 .이 포함이 안됨. 즉, jpg 출력.
:idxOfDot .을 포함하여 출력. 즉, .jpg 출력.
연습문제2.
문자열 "abc12345def67890ghijk"에서
아라비아 숫자 1234567890을 제외하고 한 글자씩 화면에 출력하시오.String str = "abc12345def67890ghijk";
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) >= '0' && str.charAt(i) <= '9') {
continue;
}
System.out.println(str.charAt(i));
}
또는
for(int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if(ch >= '0' && ch <= '9') {
continue;
}
System.out.println(ch);
}
출력:
a
b
c
d
e
f
g
h
i
j
k