이 함수는 문자열이 다른 문자열을 '포함'하는지 여부를 확인하도록 특별히 설계되었습니다. 이 기능을 처음 사용하는 경우 '캐릭터'를 찾는 데 사용하게 될 수 있습니다. 그러나 그것은 목적을 달성하지 못할 것입니다. 이 기사에서는 java.lang.String.contains() 가 어떻게 사용, 구현되고 주의해서 사용하지 않을 경우 어떤 예외가 발생할 수 있는지에 대해 설명합니다 .
contains() 메서드는 무엇입니까?
특정 문자열 " key "가 특정 문자열 내에 존재하는지 여부를 " 찾기 " 위해 contains(String key) 메소드를 사용할 수 있습니다 . "key"가 발견되면 "true"가 리턴됩니다. 그렇지 않으면 "거짓"을 얻게 됩니다.
내부 구현
이 메서드는 java.lang.String 에 의해 이미 구현되어 있습니다 . 이를 직접 구현할 필요는 없습니다. 이해를 돕기 위한 간단한 설명입니다.
public class ContainsMethod
{
public boolean contains(CharSequence key)
{
return indexOf(key.toString()) > -1;
}
}
코드 설명
contains() 메소드는 CharSequence를 입력 매개변수로 사용합니다. 나중에 "문자열"로 변환됩니다. 그런 다음 이 표현식은 indexOf(key.toString()) > -1로 계산됩니다 . . 즉, 해당 "키"가 인덱스("0" 이상)에서 발견되면 "true"가 반환됩니다. 키를 찾을 수 없으면 "false"가 반환됩니다.contains() 메서드를 사용하는 방법은 무엇입니까?
사용 방법은 다음과 같습니다.
public class ContainsMethod {
public static void main(String[] args) {
String input = "A brown fox jumped over a lazy dog.";
// check the containing strings
System.out.println("input.contains(bro) = " + input.contains("bro"));
System.out.println("input.contains(brown) = " + input.contains("brown"));
System.out.println("input.contains(Brown) = " + input.contains("Brown"));
System.out.println("input.contains(fox) = " + input.contains("fox"));
System.out.println("input.contains(xof) = " + input.contains("xof"));
System.out.println("input.contains(dog) = " + input.contains("dog"));
System.out.println("input.contains(lazyy) = " + input.contains("lazyy"));
System.out.println("input.contains(jumping) = " + input.contains("jumping"));
}
}
산출
input.contains(bro) = true input.contains(brown) = true input.contains(Brown) = false // 대소문자를 구분하기 때문에 false input.contains(fox) = true input.contains(xof) = false // false 순서가 같아야 하기 때문에 input.contains(dog) = true input.contains(lazyy) = false // 전체 하위 문자열을 찾을 수 없기 때문에 false input.contains(jumping) = false
코드 설명
이 방법은 입력 매개변수에 대해 대소문자를 구분합니다. 따라서 위의 스니펫에서 "갈색"을 검색하면 true 가 반환되고 "갈색"에 대해 false가 반환되는 것을 관찰할 수 있습니다. 또한 문자 순서가 동일해야 하므로 "fox"를 찾으면 true 를, "xof" 또는 "oxf"를 찾으면 false 를 얻게 됩니다 . 마지막으로 "jump" 또는 "jumped"를 찾으면 " input " 문자열 에 전체 매개변수가 있으므로 true 를 얻게 됩니다 . 반면에 "jumping"을 확인하면 전체 키("jumping")를 찾을 수 없기 때문에 false가 반환됩니다.예외 처리
java.lang.String.contains() 메서드는 일부 구체적인 값으로 매개 변수 문자열을 초기화하는 것을 잊은 경우 Null Pointer Exception을 발생시킵니다.
public class ContainsMethod {
public static void main(String[] args) {
String input = "Here is a test string.";
String test = null;
// check what happens if you look for a null string
System.out.println("input.contains(test) = " + input.contains(test));
}
}
산출
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.contains(String.java:2133)
at ContainsMethod.main(ContainsMethod.java:8)
GO TO FULL VERSION