미누에요
[Java] 문자열 길이, 대소문자 변환, 포함 관계 본문
이번 게시물에서는 문자열에 관한 여러 기능들에 대하여 알아보겠다.
String s = "I like Java and Python and C.";
위와 같은 문자열 s가 있다.
이제 우리는 위 문자열을 가지고 여러 기능들을 실행해 볼 것이다.
- 문자열 길이 구하기
System.out.println(s.length()); // 29
문자열의 길이를 구하려면 문자열.length()를 실행하면 된다.
위와 같이 코드를 작성하면 "I like Java and Python and C." 라는 문장의 길이를 계산하여 29라는 값을 출력할 것이다.
- 대소문자 변환
System.out.println(s.toUpperCase()); // 대문자로
System.out.println(s.toLowerCase()); // 소문자로
문자열을 대문자로 혹은 소문자로 변환하려면 위와 같이 실행하면 된다.
문자열의 문자들을 모두 대문자로 바꾸려면 문자열.toUpperCase()를 실행하고, 모두 소문자로 바꾸려면 문자열.toLowerCase()를 실행하면 된다.
결과는 위처럼 나온다.
- 포함 관계
문자열에 내가 궁금한 단어가 포함되는지를 알아보고 싶다면 문자열.contains("단어")를 사용하면 된다.
System.out.println(s.contains("Java")); // 포함된다면 true
위 코드에서는 Java라는 단어가 포함되는지를 확인하려고 한다.
s 안의 문자열이 I like Java and Python and C. 이였으므로 Java가 존재한다.
따라서 true 가 나온다.
System.out.println(s.contains("C#")); // 포함되지 않는다면 false
비슷하게, 위의 코드에서 C#이라는 단어는 포함되지 않으므로 false를 출력한다.
만약 단어가 문자열 안에서의 어디에 있는지 위치 정보를 알고싶다면 문자열.indexOf("단어") 를 사용하면 된다.
System.out.println(s.indexOf("Java")); // 위치 정보 7
Java 라는 단어의 위치를 확인하는 코드이다.
컴퓨터는 배열의 첫번째 값을 1 이 아닌 0번으로 인식하기 때문에 Java라는 단어의 시작점은 7이다.
0부터 숫자를 세니 헷갈릴 수 있다. 주의하자
만약 위와 같은 indexOf를 문자열에 포함되지 않은 단어를 확인하면 어떻게 될까?
System.out.println(s.indexOf("C#")); // 포함되지 않는다면 -1
우리가 처음에 작성한 s 라는 문자열에는 C#이란 단어가 존재하지 않는다.
그렇다면 위 코드의 결과는 어떻게 나올까 ? false가 나오려나 ?
문자열에 포함되지 않는 단어의 위치를 검색한다면 위와 같이 -1이 출력되는 것을 알 수 있다.
그럼, 문자열 안에 우리가 작성한 s의 "and" 처럼 여러 번 중복되는 단어가 있다면 어떨까?
처음의 위치가 출력될까 아니면 마지막의 위치가 출력될까 ?
System.out.println(s.indexOf("and")); // 처음 일치하는 위치 정보 (12)
기본적으로 indexof는 첫번째 위치값을 반환한다.
System.out.println(s.lastIndexOf("and")); // 마지막 일치하는 위치 정보 (23)
하지만 lastIndexOf를 사용한다면 중복된 단어의 마지막 인덱스를 반환한다.
제대로 출력되는 것을 확인할 수 있다.
그 다음은 특정 문자열로 시작하거나 끝나는지 확인하는 기능에 대하여 알아보겠다.
특정 문자로 시작하는 지 알아보는 메서드이다.
System.out.println(s.startsWith("I like")); // 이 문자열로 시작하면 true 아니면 false
결과는 아래와 같다.
마지막으로, 특정 문자로 끝나는 지 알아보는 메서드이다.
System.out.println(s.endsWith(".")); // 이 문자열로 끝나면 true, 아니면 false
결과는 아래와 같다.
이상으로 문자열과 관련된 메서드를 마치겠다.
출처 - 나도코딩 자바 강의 https://www.youtube.com/watch?v=NQq0dOoEPUM&t=11012s
'Java' 카테고리의 다른 글
[Java] 문자열 비교 (0) | 2023.11.04 |
---|---|
[Java] 문자열 변환, 공백 제거, 문자열 결합 (2) | 2023.11.04 |
[Java] 퀴즈 2. 어린이의 키에 따른 탑승 (0) | 2023.11.01 |
[Java] 삼항 연산자 (0) | 2023.11.01 |
[Java] 논리 연산자 (2) | 2023.11.01 |