java - 返回减去特定字符之间的特定字符的字符串

标签 java string for-loop char charat

我正在进行 Java CodeBat 练习。 Here is the one I am stuck on :

Look for patterns like "zip" and "zap" in the string -- length-3, starting with 'z' and ending with 'p'. Return a string where for all such words, the middle letter is gone, so "zipXzap" yields "zpXzp".

这是我的代码:

    public String zipZap(String str){

    String s = ""; //Initialising return string
    String diff = " " + str + " "; //Ensuring no out of bounds exceptions occur

    for (int i = 1; i < diff.length()-1; i++) {
        if (diff.charAt(i-1) != 'z' &&
                diff.charAt(i+1) != 'p') {
            s += diff.charAt(i);
        }
    }
    return s;
}

这对其中一些人来说是成功的,但对其他人来说则不然。对于某些示例字符串,&& 运算符的作用类似于 ||;也就是说,很多我想保留的角色都没有保留。我不确定如何修复它。

如果您愿意的话,请朝正确的方向轻推!我只需要一个提示!

最佳答案

事实上恰恰相反。你应该这样做:

if (diff.charAt(i-1) != 'z' || diff.charAt(i+1) != 'p') {
    s += diff.charAt(i);
}

这相当于:

if (!(diff.charAt(i-1) == 'z' && diff.charAt(i+1) == 'p')) {
    s += diff.charAt(i);
}

关于java - 返回减去特定字符之间的特定字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29497184/

相关文章:

java - android:layout_gravity 没有按预期工作

c++ - 单词之间只留一个空格?

r - 如何使 'for loop' 跳过其中显示错误的一些迭代?

for-loop - OpenMP 中的并行 while/for - 目录中的文件

Java Jsoup 打印 For 循环

java - 如果有人将对象的引用作为接口(interface)持有,GC 会收集对象吗?

java - 在哪里可以找到从 tomcat :run? 的 JSP 生成的 Servlet

java - Google Guava 供应商示例

c - 为什么 'strcat' 函数不起作用?

c# - 双倍于带强制小数点的字符串