如何检查所选字符串中是否包含userInputted字符串字符?

时间:2017-09-13 18:12:11

标签: java string java.util.scanner

  • 报告源中的每个字符是否在目标中至少出现一次。

  • 示例:containsAll(" abc"," abracadabra")是真的,并且包含所有(" def","缺陷&#34 ;)是假的。

  • 实施注意:将其写为累积循环。不要尝试编写一个双嵌套循环!

所以我必须使用累积循环来基本查看userInputted字符串字符是否出现在所选字符串中。

下面我有我的代码,下面是我用作测试用例的内容。

 public static boolean containsAll (String source, String target)
{
    boolean contains = false;
    scn = new Scanner (source); 


             String token = scn.next();


             if(target.contains(token) || token.isEmpty()) {
                 contains = true;
             }



        return contains;
}

这是测试用例。第一个不起作用,但其余的工作正常。

@Test
public void testContainsAll ()
{
    assertTrue(containsAll("", ""));
    assertTrue(containsAll("abc", "abracadabra"));
    assertFalse(containsAll("def", "Defect"));
    assertFalse(containsAll("x", ""));
}

提前致谢。

1 个答案:

答案 0 :(得分:1)

感谢所有帮助。我的代码创建一个布尔变量并将其初始化为true。然后我创建一个for循环,遍历userInputted字符串的所有字符,如果target在该迭代中不包含该字符的值,则contains设置为false。否则我返回包含之前初始化为true的包含。

public static boolean containsAll (String source, String target)
{

    boolean contains = true;

    for (int i = 0; i < source.length(); i++)
    {

        if (!target.contains(String.valueOf(source.charAt(i))))
        {
            contains = false;
        }
    }

    return contains;

}