【问题标题】:Searching within a String Array, code wants Boolean?在字符串数组中搜索,代码需要布尔值?
【发布时间】:2012-10-25 22:43:26
【问题描述】:

所以我的代码应该在字符串数组中搜索名称。所以“mit”会找到“Smith”,我快到了,但我的方法存在问题。在搜索名称的for 循环内,有一个错误告诉我我需要一个布尔值并且我正在使用一个字符串。有人知道怎么修这个东西吗?

public static void Search(String[] arr, String find) {
    for (int i = 0; i < 10; i++) {
        if (arr[i].toLowerCase()).contains(find.toLowerCase()) {
             System.out.println(String.format("found name: %s", arr[i]));
             return;
        }
    }
    System.out.println("Name not found!");
}

错误出现在if 语句中。

【问题讨论】:

    标签: java arrays string methods


    【解决方案1】:

    看看这个:

    if (arr[i].toLowerCase()).contains(find.toLowerCase())
    

    计算括号...在第一个toLowerCase() 之后立即关闭if 条件,并且contains 调用之后关闭它。你想要:

    if (arr[i].toLowerCase().contains(find.toLowerCase()))
    

    【讨论】:

    • 谢谢。谢谢你。谢谢。
    • 缺少一个(! Jon Skeet 的一次罕见疏忽 :)
    • @KingsIndian 这不是疏忽,他只是改了 java
    • 用户不会将 Jon Skeet 的答案标记为已接受。宇宙出于真理和正义感而接纳他们。
    【解决方案2】:

    这样做:

    if ( arr[i].toLowerCase().contains(find.toLowerCase()))
    

    你关闭括号太早了,所以在 if 你有一个字符串而不是一个布尔值。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 2017-12-18
      • 1970-01-01
      • 1970-01-01
      • 2019-10-30
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多