ko en ko ko ko ja en en zh en pt ko ko ko es nl ko en ko ko ko ko ko en nl ru ko ko da ko nl ko en nl ko en nl ko en ko en nl ko en nl ko ko ko ko ko ko zh en en en en pt fr en en kn en sv fr en en en en en es fr en en en fr ja en en en en en en en en en fi en hu pt hbs_lat ru en en en en pl ko ko ko ko ko ko ko zh en en pt en en en uz en en fr eo sv en en en es en en en en en en ja en it hu ja eo en de en ko ko en en
문자열에 배열의 문자열이 포함되어 있는지 테스트 문자열이 포함되어 있는지 확인하려면 - How IT
배열의 문자열이 포함되어 있는지 확인하려면 어떻게 문자열을 테스트합니까?
if (string.contains(item1) || string.contains(item2) || string.contains(item3))
편집 : 다음은 Java 8 Streaming API를 사용한 업데이트입니다. 훨씬 더 깨끗합니다. 여전히 정규 표현식과 결합 할 수 있습니다.
public static boolean stringContainsItemFromList(String inputStr, String[] items) { return Arrays.stream(items).parallel().anyMatch(inputStr::contains); }
또한 입력 유형을 배열 대신 List로 변경하면 사용할 수 있습니다 items.parallelStream().anyMatch(inputStr::contains).
.filter(inputStr::contains).findAny()일치하는 문자열을 반환하려는 경우 에도 사용할 수 있습니다 .
약간 날짜가 적힌 원래 답변 :
다음은 (VERY BASIC) 정적 메소드입니다. 비교 문자열에서는 대소 문자를 구분합니다. 원시적 그 사례를 구분을 할 방법은 전화를하는 것 toLowerCase()또는 toUpperCase()모두 입력 및 테스트 문자열을.
이보다 복잡한 작업을 수행해야하는 경우 Pattern and Matcher 클래스를 보고 정규 표현식을 수행하는 방법을 배우는 것이 좋습니다 . 일단 이해하면 해당 클래스 또는 String.matches()도우미 메소드를 사용할 수 있습니다 .
public static boolean stringContainsItemFromList(String inputStr, String[] items) { for(int i =0; i < items.length; i++) { if(inputStr.contains(items[i])) { return true; } } return false; }
StringUtils.indexOfAny(inputString, new String[]{item1, item2, item3})
찾은 문자열의 색인을 찾거나없는 경우 -1을 반환합니다.
다음 과 같이 String # matches 메소드를 사용할 수 있습니다 .
System.out.printf("Matches - [%s]%n", string.matches("^.*?(item1|item2|item3).*$"));
가장 쉬운 방법은 아마도 배열을 java.util.ArrayList로 변환하는 것입니다. 일단 배열 목록에 있으면 contains 메소드를 쉽게 활용할 수 있습니다.
public static boolean bagOfWords(String str) { String[] words = {"word1", "word2", "word3", "word4", "word5"}; return (Arrays.asList(words).contains(str)); }
당신이 사용하는 경우 자바 8 위 또는, 당신은 신뢰할 수있는 스트림 API 와 같은 일을 :
public static boolean containsItemFromArray(String inputString, String[] items) { // Convert the array of String items as a Stream // For each element of the Stream call inputString.contains(element) // If you have any match returns true, false otherwise return Arrays.stream(items).anyMatch(inputString::contains); }
String테스트 할 큰 배열이 있다고 가정하면을 호출하여 검색을 병렬로 시작할 수도 parallel()있습니다. 그러면 코드는 다음과 같습니다.
여기에 하나의 해결책이 있습니다.
public static boolean containsAny(String str, String[] words) { boolean bResult=false; // will be set, if any of the words are found //String[] words = {"word1", "word2", "word3", "word4", "word5"}; List  list = Arrays.asList(words); for (String word: list ) { boolean bFound = str.contains(word); if (bFound) {bResult=bFound; break;} } return bResult; }
버전 3.4부터 Apache Common Lang 3은 containsAny 메소드를 구현합니다 .
이 글은 Java 카테고리로 분류되었고 소장 마님에 의해 2021-08-08에 작성됐습니다.
← Final Cut Pro의 사운드 효과는 어떻게 라이센스됩니까? 영화에 넣을 iproute2와 동등한 OS X가 있습니까? 도구 모음을 검색하고 있습니다. 네트워크 →
CLI를 통해 WPA2- 엔터프라이즈 연결에 연결 (데스크탑 없음) 연결에 연결하는 데 필요한 설명을
dnsmasq 순환 루프 오류 어딘가에 구성이없는 것을
“연결 프로그램”목록을 제거 / 변경하려면 어떻게합니까? 하나를 제거하고
저는 관리자입니다. 업무 관계 및 프로그래머와의 의사 소통을 어떻게 개선 할 수 있습니까? [닫은] 5 년 동안 여러
오디오 입력은 항상 웹캠 마이크가 될 수 있습니까? 이동해야합니다. 거기에서 오디오 입력을 ” 웹캠
Proudly powered by WordPress