2011-10-04 1 views
1

특정 문자의 문자열을 검사하려고합니다. 문자는 기본적으로 목록에 있습니다. 그러나, 나는 이것을 달성하는 방법을 모른다. 내가 가지고있는 유일한 아이디어는 각 문자에 대해 문자열의 첫 번째 문자를 검사하여 문자열을 반복하는 것입니다. 예를 들어, 내 문자열이 "ablacablada"이고 확인하려는 문자가 (l, d, e, f, h, p)이면 "ablacablada"문자열의 색인 0을 검사합니다. 문자 목록을 반복하여 인덱스 0에있는 문자가 "l"인지 확인합니다. 그렇지 않다면 색인 1로 이동합니다. 내 코드는 다음과 같습니다.문자열에서 특정 문자를 검사하는 stringChecker에 대한 아이디어가 있습니까?

public boolean stringChecker() 
{ 
    String newString = "ablacablada"; 
    char [] newChar = {l; d; e; f; h; p}; 
    String charString = new String(newChar) 
    boolean isString = false; 

    for (int i=0; i<charString.length(); i++) 
    { 
    for (int j=0; j<newString; j++) 
    { 
     if(charString.charAt(i) == newString.charAt(j)) 
     { 
     isString = true; // a character in the list (l, d, e, f, h, p) is detected 
     } 
     else 
     { 
     isString = false; 
     } 
    } 
    } 
    return isString; 
} 

그건 제 생각입니다. 그러나 작동하지 않습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면, 나는 감사 할 것입니다. 미리 감사드립니다.

P. 여기의 의미는 다음과 같습니다

"a b l a c a b l a d a" 

1. check the a from the character list. 
Is "a" == "l"? No. 
Is "a" == "d"? No. 
Is "a" == "e"? No. 
Is "a" == "f"? No. 
Is "a" == "h"? No. 
Is "a" == "p"? No. 

2. Move on to index 1. 
Is "b" == "l"? No. 
Is "b" == "d"? No. 
Is "b" == "d"? No... 
And so on. 
+1

정규 표현식은이를 위해 설계되었습니다. [ldefhp] – Joe

+0

각 문자에 대해 newString.indexOf()를 확인할 수도 있습니다. – yoozer8

+0

정규식을 처리하고 싶지 않습니다. 죄송합니다 :). 나는 전혀 모른다. –

답변

0

j은 이미 true로 설정했을 수 후에는 falseisString을 설정하는 newString
의 길이를 비교해야한다.

+0

부울 표현식은 정확합니다. 초기에 false로 설정되어 있지만, 이는 부울 식을 초기화하는 것입니다. 그 후에는 언제든지 그것을 진실과 거짓으로 바꿀 수 있습니다. –

+0

@Macosx Iam - 반환 할 isString은 배열의 마지막 문자와 문자열의 마지막 문자를 비교 한 결과입니다. –

+0

예, 문자 배열을 반복하여 문자열의 각 인덱스를 확인하고 싶습니다. 내 코드 상단에 명확한 예를 제공 할 것입니다. –

0

여기에 정규 표현식을 사용하는 예제입니다 :

  Pattern p = Pattern.compile("[ldefhp]"); 
      // Split input with the pattern 
      Matcher m = p.matcher("asdnbllksksksdf"); 
      boolean result = m.find(); 
      System.out.println(result); // true 


편집없이 정규 표현식. 바늘을 찾으면 돌아오고 나가십시오.

관련 문제