如何检查字符串是否包含字符列表?

2022-09-02 00:02:46

如何检查字符串中的字符列表,例如“ABCDEFGH”如何检查字符串中是否有任何一个。


答案 1

在java中使用正则表达式来检查在java中使用正则表达式str.matches(regex_here)

例如:

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

答案 2

实现这一点的最干净方法是使用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:

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