【问题标题】:How to check if userInputted string characters are contained in selected string?如何检查用户输入的字符串字符是否包含在选定的字符串中?
【发布时间】: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


【解决方案1】:

感谢所有帮助。我的代码创建了一个布尔变量并将其初始化为 true。然后我创建一个循环遍历 userInputted 字符串的所有字符,如果目标在该迭代中不包含该字符的值,则包含设置为 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;

}

【讨论】:

    猜你喜欢
    • 2020-07-12
    • 2017-09-23
    • 2021-11-10
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 2012-06-23
    相关资源
    最近更新 更多