2013-01-18 3 views
7

문자 목록이 문자열에 있는지 확인하는 방법 (예 : "ABCDEFGH") 문자열에 문자 목록이 있는지 확인하려면 어떻게합니까? 자바문자열에 문자 목록이 포함되어 있는지 확인하려면 어떻게합니까?

+0

CharMatcher.matchesAnyOf 당신이 어떤 문자열 여부를 확인하고자하는 뜻을 목록의 문자가 포함되어 있습니까? –

+0

이런 질문을하기 전에 다른 곳을 조금 둘러 봐야 할 것입니다. – sage88

+0

OP는 정규식을 묻는 것을 의미하지만 질문하는 방법을 모른다고 생각합니다 – Mawia

답변

15

사용 정규 표현식 예를 들어 str.matches(regex_here) regex in java

사용하여 확인하기 :

if("asdhAkldffl".matches(".*[ABCDEFGH].*")) 
    { 
     System.out.println("yes"); 
    } 
+0

로케일 감도는 어떨까요? – mre

2

나는이 초보자 질문입니다 생각, 그래서 내가 당신에게 내가 생각할 수있는 easies 방법을 제공합니다 : using indexof 복잡한 버전이 포함 된 경우 regex을 시도해 볼 수 있습니다.

0

이것은 숙제 질문처럼 보인다 ... -_-

당신은 String.contains() 함수를 사용할 수 있습니다. 예를 들어
:

"string".contains("a"); 
String str = "wasd"; 
str.contains("a"); 

하지만 당신은 당신이 확인하고 싶은 모든 문자에 한 번 호출해야합니다.

+0

이것은 비효율적 인 해결책이며 정규 표현식을 사용하는 것이 좋습니다. –

+0

아직 정규식을 모르는 경우 이해가 쉽고 간단하기 때문에 게시했습니다. – EAKAE

+0

이 방법으로 숫자 데이터 만 들어 있는지 확인하려면 행운을 빈다. – Alex

8

StringUtils.containsAny(String, String)

package com.sandbox; 

import org.apache.commons.lang.StringUtils; 
import org.junit.Test; 

import static org.junit.Assert.assertFalse; 
import static org.junit.Assert.assertTrue; 

public class SandboxTest { 

    @Test 
    public void testQuestionInput() { 
     assertTrue(StringUtils.containsAny("39823839A983923", "ABCDEFGH")); 
     assertTrue(StringUtils.containsAny("A", "ABCDEFGH")); 
     assertTrue(StringUtils.containsAny("ABCDEFGH", "ABCDEFGH")); 
     assertTrue(StringUtils.containsAny("AB", "ABCDEFGH")); 
     assertFalse(StringUtils.containsAny("39823839983923", "ABCDEFGH")); 
     assertFalse(StringUtils.containsAny("", "ABCDEFGH")); 
    } 

} 

메이븐 의존성 사용하고이를 구현하는 가장 깨끗한 방법 : 구아바에서

<dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.5</version> 
    </dependency> 
+0

나는 가져 오기 org.apache.commons 가져 오기를 확인할 수 없습니다. – anon58192932

+2

@advocate 아마도 자바로 빌드되지 않았기 때문일 수 있습니다. 그것을 얻으려면 Apache Commons Lang을 다운로드해야한다. http://commons.apache.org/proper/commons-lang/ 클래스 경로에 추가하십시오. –

+0

감사! 다른 사용자는 다운로드 패키지의 압축을 풀어야합니다 (프로젝트 폴더에서 권장). Eclipse에서 프로젝트를 마우스 오른쪽 단추로 클릭하십시오. -> 빌드 경로 -> 빌드 경로 구성 -> 외부 Jars 추가 -> Common Lang Jars를 선택하십시오. 또한 inport 문에 올바른 버전 번호가 필요합니다. import org.apache.commons.lang3.StringUtils; – anon58192932

1

:

private static final CharMatcher CHARACTERS = CharMatcher.anyOf("ABCDEFGH"); 
assertTrue(CHARACTERS.matchesAnyOf("39823839A983923")); 
관련 문제