【发布时间】:2017-09-13 18:12:10
【问题描述】:
报告源中的每个字符是否在目标中至少出现一次。
示例:containsAll("abc", "abracadabra") 为真, containsAll("def", "Defect") 为假。
实现说明:将其写为累积循环。不要尝试编写双重嵌套循环!
所以我只好用一个累加循环来基本看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", ""));
}
提前致谢。
【问题讨论】:
-
“报告源中的每个字符是否在目标中至少出现一次”不是
contains方法所做的,因为它检查字符串是否包含指定的子字符串,而不是它是否包含来自该子字符串的所有字符无论他们的订单或数量。您需要遍历字符串字符并检查其他字符串中的某些字符是否等于它。 -
scn.next()为您提供下一个单词,而不是下一个字符... -
好的一秒哈哈。我想办法做到这一点。
-
等等,我该如何改变呢? @f1sh
-
您在最喜欢的搜索引擎中查找
java iterate over characters in string时发现了什么?
标签: java string java.util.scanner