2013-01-18 38 views
7

文字のリストが文字列内にあるかどうかをチェックするにはどうすればいいですか?たとえば、 "ABCDEFGH"などです。文字列に文字のリストが含まれているかどうかを確認するにはどうすればよいですか?

+0

は、あなたは、いくつかの文字列かどうかを確認したい意味しますかリストの文字が含まれていますか? –

+0

このような質問をする前に、おそらく別の場所を見てください。 – sage88

+0

OPは正規表現に頼むことを意味しますが、尋ねる方法を知らなかったと思います – Mawia

答えて

15

例えばstr.matches(regex_here) regex in java

を使用してチェックするために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")); 
    } 

} 

Mavenの依存関係を使用している:

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

私は取得していますインポートorg.apache.commonsを解決することができません – anon58192932

+2

@advocateおそらくそれはjavaに組み込まれていないためです。 Apache Commons Langをダウンロードする必要があります。 http://commons.apache.org/proper/commons-lang/クラスパスに追加してください。 –

+0

ありがとう!他の人は、ダウンロードパッケージを解凍する必要があります(私はあなたのプロジェクトフォルダにお勧めします)。 Eclipseでプロジェクトを右クリック - > Build Path - > Build Pathを設定 - > Add External Jars - > Commons lang jarsを選択します。また、あなたのinport文に正しいバージョン番号が必要です:import org.apache.commons.lang3.StringUtils; – anon58192932

1

グァバから:CharMatcher.matchesAnyOf

private static final CharMatcher CHARACTERS = CharMatcher.anyOf("ABCDEFGH"); 
assertTrue(CHARACTERS.matchesAnyOf("39823839A983923")); 
関連する問題