java - 如何修复我的 java 方法以正确迭代字符串?

标签 java for-loop

我需要一些重大帮助。

我的任务是识别小写字符串并返回 true 或 false 语句,尽管存在其他字符或单词。到目前为止,我能够识别全小写的字符串,但如果单词全大写,我的代码仍然返回 TRUE 值;我只希望它识别小写值。

任务: 编写一个程序,接受一个字符串行,如果我的名字(“john”)的字母以相同的顺序出现在字符串中(全部为小写),则打印 true。请注意,我的名字的字母之间可能还有其他字符。

这是我的代码:

import java.util.Scanner;

class Main {

    public static void main(String[] args) {
        boolean output = Check();
        if (output == true) {
            System.out.println("true");
        }

        else if (output == false) {
            System.out.println("false");
        }
    }

    public static boolean Check() {
        String random;
        Scanner sc = new Scanner(System.in);
        random = sc.nextLine();
        String word = "john";

        for (int i = 0; i < word.length(); i++) {
            if (random.contains(word.substring((i)))) {
                return true;
            }
        }
        if (random.contains("JOHN")) {
            return false;
        }
        return false;
    }
}

任何帮助将非常感谢。 一些示例输出:

示例输入 1: 你好约翰 示例输出 1: 错误

示例输入 2: j123o23h56n 示例输出 2: 正确

示例输入 3: 约翰 示例输出 3: 正确

示例输入 4: 浩金 示例输出 4: 错误

示例输入 5: J2j#@oh123$NNNnn 示例输出 5: 正确

最佳答案

您需要编写一个逻辑,从“john”字符串中选取每个字符并按顺序进行比较,无论它们是否全部按该顺序出现。当它发现输入字符串中找到所有字符时,它立即返回 true,而不需要进一步扫描输入字符串。你可以写这样的东西,

public static boolean Check() {
    String random;
    Scanner sc = new Scanner(System.in);
    random = sc.nextLine();
    String word = "john";
    sc.close();

    int findIndex = 0;
    char findChar = word.charAt(findIndex);
    for (char c : random.toCharArray()) {
        if (findChar == c) {
            findIndex++;
            if (findIndex == word.length()) {
                return true;
            }
            findChar = word.charAt(findIndex);
        }
    }
    return false;
}

关于java - 如何修复我的 java 方法以正确迭代字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52995197/

相关文章:

Java Config 入站文件适配器事务管理

java - Applet 面板、一种固定尺寸和动态 JTextField

javascript - 未捕获的类型错误 : items is not iterable

python - 如何计算一个字符

java - 从html源代码中过滤pdf链接

java - 使用正则表达式用修改后的字符替换字符串中的序列

java - 使用 shell 和对齐按钮调整表的大小?

c - 为什么我的小 C 循环不能正确打印到帧缓冲区,但它的展开版本可以?

java - Java中从ArrayList中删除对象

java - for 循环程序的建议