자바 문자열과 관련된 함수 중에서 문자 중에서 해당 내용이 포함되어 있는지를 확인하는 메서드를 확인해보려 합니다.

  1. startsWith : 문자열의 시작에 원하는 문자가 있는지 확인하는 메서드
  2. EndsWith : 문자열의 에 원하는 문자가 있는지 확인하는 메서드
  3. contains : 문자열 에 원하는 문자가 있는지 확인하는 메서드

1. startsWith : A 문자열이 B로 시작한다면 true를 반환, 아니라면 false를 반환합니다.

  • A.startsWith(B, [C])
    • A에는 확인하고자 하는 문자열로 필수로 작성해야 합니다.
    • B에는 찾고자 하는 문자열로 필수로 작성해야 합니다.
    • C는 인덱스 값으로 필수로 작성해야 하는 사항은 아니지만 작성하지 않으면 B 인자가 A 문자열의 처음부터 포함되는지를 확인합니다.

간단한 예시로 추가적인 설명을 하겠다.

String abc = "123";

1. System.out.println(abc.startsWith("1")); // true
2. System.out.println("1".startsWith(abc)); // false
3. System.out.println(abc.startsWith("13")); // false
4. System.out.println(abc.startsWith("3", 2)); // true
  1. 변수  abc는 문자열 "123"로 변수 abc 문자열의 시작은 "1"로 시작하기 때문에 true를 반환합니다.
  2. 문자열 "1"의 시작은 "123"이 될 수 없으므로 false를 반환합니다.
  3. 변수  abc는 문자열 "123"로 문자열의 시작은 "13"이 아니라서 false를 반환합니다.
  4. startsWith는 두 번째 파라미터로 문자열의 index값을 사용할 수 있습니다.
    • 문자열의 인덱스는 0부터 시작하므로 인덱스 2의 문자는 "3"이기 때문에 true를 반환합니다.

2. endsWith : A 문자열이 B로 끝나면 true를 반환, 아니라면 false를 반환합니다.

  • A.endsWith(B)
String abc = "123";

1. System.out.println(abc.endsWith("3")); // true
2. System.out.println("3".endsWith(abc)); // false
3. System.out.println(abc.endsWith("13")); // false

 

  1. 변수  abc는 문자열 "123"로 변수 abc 문자열의 마지막은 "3"으로 끝나기 때문에 true를 반환합니다.
  2. 문자열 "3"의 끝은 "123"이 될 수 없으므로 false를 반환합니다.
  3. 변수 abc는 문자열 "123"으로 문자열의 끝은 "13"이 아니라서 false를 반환합니다.

3. contains : A 문자열에 B가 포함되면 true를 반환, 아니라면 false를 반환합니다.

  • A.contains(B)
String abc = "123 456";

1. System.out.println(abc.contains("3")); // true
2. System.out.println("3".contains(abc)); // false
3. System.out.println(abc.contains("45")); // true
4. System.out.println(abc.contains("345")); // false
5. System.out.println(abc.contains("3 45")); // true
  1. 변수 abc는 문자열 "123 456"으로 변수 abc 문자열 안에 "3"은 포함돼서 true를 반환합니다.
  2. 문자열 "3"에는 "123 456"을 포함하지 않으므로 false를 반환합니다.
  3. 변수 abc는 문자열 "123 456"으로 변수 문자열 안에 "45"은 포함돼서 true를 반환합니다.
  4. 변수 abc는 문자열 "123 456"로 변수 문자열 안에 "345"는 포함되지 않아서 false를 반환합니다.
  5. 변수 abc는 문자열 "123 456"로 변수 문자열 안에 "3 45"는 포함되서 true를 반환합니다.

위의 예시처럼 starsWith, endsWith와 contains 메서드의 사용 방식은 유사합니다.

 

차이점으로는 startsWith에만 문자열 인덱스를 두 번째 파라미터로 사용할 수 있다는 차이점,

각 메서드가 문자열을 찾는 위치가 다르다는 두 가지 차이점뿐입니다.

 

공통점은 A.메서드(B)로 A라는 문자열 안에 B라는 문자열이 메서드의 조건에 따라 boolean 값을 반환하는 메서드라는 사실입니다.

 

추가로 의외로 실수를 많이 하는 게 A와 B를 착각해서 사용하는 경우가 있다는 점입니다.

기본적으로 A라는 문자열이 더 큰 범위이고 B라는 문자열은 더 작은 범위를 가지고 있습니다.

 

마지막으로 공백(" ") 또한 문자이기 때문에 문자열 안에 공백이 들어가 있다면 공백까지 정확하게 작성해줘야 합니다.

 

위 사항들만 정확히 인지하고 있다면 해당 메서드로 인한 문제는 발생하지 않을 거라 생각합니다.

 

이상으로 글을 마치겠습니다. 

 

도움이 되셨다면 좋아요만 부탁드릴게요. 감사합니다.