当前位置: 首页 > 知识库问答 >
问题:

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

华坚成
2023-03-14

我需要一些主要的帮助。

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

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;
    }
}

示例输入5:j2j#@oh123$nnnnn示例输出5:true

共有1个答案

夏侯玄天
2023-03-14

您需要编写一个逻辑,在其中从“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中,我这样做是为了修剪字符串: 输出为: 作品。但是我想知道是否通过给自己分配一个变量来做正确的事情。我不想通过创建另一个变量并将调整后的值分配给它来浪费资源。我想就地进行修剪。 那我这样做对吗? 问题答案: 您做对了。从文档中: 字符串是常量;它们的值创建后无法更改。字符串缓冲区支持可变字符串。由于String对象是不可变的,因此可以共享它们。 同样从文档中: 修剪 公共字

  • 问题内容: ?将转换为并对其进行迭代?还有吗 问题答案: 我使用for循环来迭代字符串,并使用它来获取每个字符以进行检查。由于是通过数组实现的,因此该方法是恒定时间操作。 那就是我会做的。在我看来,这是最简单的。 就正确性而言,我认为这不存在。这完全取决于你的个人风格。

  • 问题内容: ?将转换为并对其进行迭代?还有吗 问题答案: 我使用for循环来迭代字符串,并使用它来获取每个字符以进行检查。由于是通过数组实现的,因此该charAt()方法是恒定时间操作。 那就是我会做的。在我看来,这是最简单的。 就正确性而言,我认为这不存在。这完全取决于您的个人风格。

  • 问题内容: 我有一个(实际上,我使用的是更复杂的POJO,但是为了我的问题而简化了它) 好像 : 我如何遍历此地图,打印出密钥,然后打印人名,然后打印人年龄,例如: A是Map < String ,Person> 的键 B是Person.getName()的名称 C是Person.getAge()的年龄 我可以使用.values()从地图中提取所有值,如HashMap文档中所述,但是我不确定如何获

  • 嗨,我是Java的初学者,我正在尝试编写这个程序,我可以在其中输入数字,但是当我输入“完成”时,我得到了我称为总计的值,numberInput。但是,当我运行它并输入“完成”时,我在线程“main”java.lang.NumberFormatException中得到异常:对于输入字符串:“完成”。你知道我如何修复这个问题吗? 这是我的代码: 谢谢你的帮助

  • 问题内容: JDK的String.trim()方法非常幼稚,仅删除ascii控制字符。 Apache Commons的StringUtils.strip()稍好一些,但使用了JDK的Character.isWhitespace(),后者无法将不间断的空格识别为whitespace。 那么,用Java修剪字符串的最完整,与Unicode兼容,安全和正确的方法是什么? 顺便说一句,有没有比我应该使用的