【问题标题】:JAVA - String contains char letter. Possible to check? [duplicate]JAVA - 字符串包含字符字母。可以查吗? [复制]
【发布时间】:2015-11-04 04:27:29
【问题描述】:

我正在尝试创建一个名为 Baller(String str, char chr) 的方法,如果单词包含该字符,它应该返回一个布尔值。在我的主要方法中:

public static void main(String[] args) {
    Balling ball= new Balling ();
    System.out.println( ball.contains("Baller", 'a'));
    System.out.println( ball.contains("Baller", 'A'));
}

我所做的就是这样,但它不起作用:

public boolean contains(String str, char chr ) {
    if(str.length() == chr) {
        return true;
    }
    else {
        return false;
    }       
}

可能是什么问题?

回答

public boolean contains(String str, char chr ) {

        for(int i = 0; i < str.length(); i++)
            if(str.charAt(i) == chr)
                return true;
        return false;
    }
}

【问题讨论】:

  • 你为什么要把str.length()char比较?
  • @Tom 我已经检查了该线程,它与我正在寻找的不一样,因为我已经有了一个应该继续使用的 main 方法。
  • 那么你将字符串 (6) 的长度与 'a' 进行比较?
  • @dognose 如您所见。我对此有点新意。如果字符串中有一个字符,我想更像是字符串中的所有字母。
  • @Thrillofit123 是否有main 方法不是重点。关键是如何检查给定字符串中是否出现单个字符。链接的问题回答了如何修复 contains 方法。

标签: java string char contains


【解决方案1】:

问题是字符串长度与字符值进行比较:

str.length() == chr

indexOfString 方法应该使用什么

public boolean contains(String str, char chr) {
  return str.indexOf(chr) != -1;
}

【讨论】:

  • 这行得通。这真的很简单。但我敢打赌还有另一种方式。但这要容易得多。但如果你有时间。你能帮我解释一下吗?我阅读了文档,但我没有完全理解。但如果你能告诉我一个基本的步骤,我会很高兴:)?
  • 其他解决方案是将字符串转换为字符数组并将每个字符与给定的字符进行比较。上述解决方案使用indexOf(char) 方法在字符串中查找字符并返回其位置。如果未找到字符,则返回值“-1”。因此,除-1 之外的任何索引都表示字符串包含该字符。
【解决方案2】:

您正在测试字符串的长度是否等于某个字符。如果您的字符串长度为零并且您的字符 == 0,或者如果您的字符串长度为 1,并且您将其与数值为 1 的字符进行比较,这可能会起作用。换句话说:几乎从不。

你永远不会返回 false。所以你所有的字符串都包含你所有的字符。

String 有一个indexOf( character ) 方法。用那个。见documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 2014-11-06
    • 2011-05-14
    相关资源
    最近更新 更多