报告源中的每个字符是否在目标中至少出现一次。
示例: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", ""));
}
提前致谢。
答案 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;
}