java - 判断字符串中是否有两个特定字符

标签 java string char substring

我正在做一些 Java 练习,但我不明白为什么答案不是这个。

 for (int i=0;i<str.length()-2;i++)  {
    if ((str.charAt(i)=='b') && (str.charAt(i+2)=='b')) {
    return true; }
    else return false; 
    }
 return false; 

如果给定的字符串(str)中包含“bob”,则该问题要求返回 true,但中间字符不需要是“o”。上面的代码对于三个字符的字符串返回 true 满足条件的长度,如“bob”或“bbb”,但对于长于该条件的字符串,即“bobdfgkabcb”,则为 false。我确实花了一整天的时间试图解决这个问题和另一个类似的问题,所以我很感激有人告诉我为什么它是错误的。

谢谢。

最佳答案

将代码更改为:

for (int i=0;i<str.length()-2;i++)  {
    if ((str.charAt(i)=='b') && (str.charAt(i+2)=='b')) {// check 1st and 3rd character, 2nd and 4th character etc
    return true; }
    }
 return false;

或者你可以尝试这样的正则表达式:str.matches(".*b[a-zA-Z]b.*")

关于java - 判断字符串中是否有两个特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26116017/

相关文章:

java - 如何从字符串创建 char[][]?

java - 在 ORMLite 中为 ApplicationSettings 存储多个 ArrayLists 的最佳方式

java - iText - Java Android - 将字段添加到现有 pdf

java - 使用正则表达式替换 +{user}100 等表达式

c - char ** 对象是如何保存的?

c - 替换字符串中的字符

C - 从 .txt 文件读取并将字符存储在数组中

Java 一组字节数组

c - 消息 UDP 中的文件名

arrays - Swift 计算 for 循环中的字符串大小