首页 > 解决方案 > 当单词在 IF 语句中没有元音时,Java 代码将打印 TRUE 的问题

问题描述

我正在尝试编写一个代码,当我输入一个没有元音的单词时将打印 TRUE,如果我输入一个带有元音的单词,将打印 FALSE。我在编写字符串时遇到了麻烦。我给其中一个字符串一个包含所有值的值。字符串 A = "aeiou"; 其他 2 个字符串包含字母表的其余部分。当我输入一个有声部的单词时,它会打印 FALSE,但是当我输入一个没有元音的单词时,它会打印 FALSE。我想知道是否有办法让程序将字符串的值作为单独的实体而不是整行读取。

package lab3;

import java.util.Scanner;

public class Lab3 {

    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        String input = reader.next();

        /* A and B, but not C */
        String A = "bcdfghjklm";
        String B = "npqrstvwxyz";
        String C = "aeiou";

        if (input.contains(A) && input.contains(B) || input.contains(C)) {
            System.out.println("TRUE");
        } else {
            System.out.println("FALSE");
        }
    }
}

标签: java

解决方案


你可以用一个简短的功能来做到这一点

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        String input = reader.next();
        System.out.println(chk(input));
    }

    static public boolean chk(String s) {
        for (int i = 0; i < s.length(); i++) {
            if ("aeiou".indexOf(s.charAt(i)) != -1) {
                return false;
            }
        }
        return true;
    }
}

推荐阅读