「ABCDEFGH」などの文字のリストが文字列に含まれているかどうかを確認するにはどうすればよいですか。
user1989216
質問する
70972 次
8 に答える
40
Javaで正規表現を使用して、Javaで正規表現を使用してチェックしますstr.matches(regex_here)
例えば:
if("asdhAkldffl".matches(".*[ABCDEFGH].*"))
{
System.out.println("yes");
}
于 2013-01-18T04:18:17.003 に答える
25
これを実装する最もクリーンな方法は、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>
于 2013-01-18T04:35:24.170 に答える
3
Guava から: CharMatcher.matchesAnyOf
private static final CharMatcher CHARACTERS = CharMatcher.anyOf("ABCDEFGH");
assertTrue(CHARACTERS.matchesAnyOf("39823839A983923"));
于 2017-06-08T13:33:02.397 に答える
2
これは初心者の質問だと思うので、私が考えることができる簡単な方法を紹介します。複雑なバージョンのindexof を使用して、必要に応じて試すことができる正規表現を含めます。
于 2013-01-18T04:21:19.643 に答える
1
Apache Commons StringUtils.containsAny().. を使用すると、特定の文字が文字列内に存在するかどうかを確認するために必要なさまざまなユース ケースを満たします。
于 2020-07-30T22:58:16.767 に答える
1
これは、パターンとマッチャーを使用して実現する方法です。
Pattern p = Pattern.compile("[^A-Za-z0-9 ]");
Matcher m = p.matcher(trString);
boolean hasSpecialChars = m.find();
于 2018-09-20T12:16:37.757 に答える
0
これは宿題の質問のようです... -_-
String.contains() 関数を使用できます。
例えば:
"string".contains("a");
String str = "wasd";
str.contains("a");
ただし、確認する文字ごとに 1 回呼び出す必要があります。
于 2013-01-18T04:24:20.637 に答える