[String-1] String 문자열 비교/ 연습문제

seratpfk·2022년 7월 27일
0

JAVA

목록 보기
30/96

문자열 비교


str1과 str2는 같다.

str3과 str4는 다르다.

  • but, 문자열 비교는 ==으로 비교하면 안된다.

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 = jpg

String 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

0개의 댓글