【问题标题】:If statement ValidationIf 语句验证
【发布时间】:2016-12-08 13:04:39
【问题描述】:

尝试编写一个简单的 Java 程序,该程序接受一个字符串并根据两个标准进行验证。

如果单词短于 4 个字母,它会要求用户重新输入一个单词,直到它变成四个字母为止..

一旦该标准为真,它就会根据字母对其进行评估。如果四个字母单词的第一个字母是 D,那么它会打印一条愚蠢的消息“The D was found”,如果不是“No D found”

到目前为止,我所做的是验证四个字母。它会检查它是否是四个字母,如果不是,它会一直询问直到它得到一个四个字母的单词。

之后,当我输入四个字母的单词时,我无法在下一个 if 中验证它是否大于 4 个字母,然后检查它是否以 D 开头。

导入 java.util.Scanner;

公共类 POD1

{

private static Sc​​anner scan = new Scanner(System.in);

private static String word;
public static void main(String [] args)
{
    System.out.println("Please enter a 4 Letter word");
    word = scan.next();

    if(word.length() <4) 
    {    
        System.out.println("Word is to short ");
        System.out.println("Plese re-enter");
        word = scan.next();
    }

    if(word.length() > 4)
    {
        if(word.charAt(1) == 'd')      
        {
            System.out.println("Big d"); 
        } else

        if( word.charAt(1) !='d')
        {
            System.out.println("No big d");
        }
    } 
}

}

更新

现在的代码确实超过了 4 个字母的单词,但即使单词以 d 开头,即使它以 d 开头,它也不会打印出大 d

【问题讨论】:

  • 那么你的问题是什么?
  • 您可能需要考虑使用循环。例如,如果用户第二次输入一个简短的单词怎么办?此外,这是一个非常棒的地方,您可以在其中使用else 关键字(不是else if (...),只是简单的else)。
  • 哦,'d''D' 之间有很大的不同。
  • 另一件事:第一个索引是0 不是 1.数组,列表,字符串在Java中都是零索引;与大多数其他编程语言一样。

标签: java validation


【解决方案1】:

您应该具有以下内容以包含 4 个字母的单词

if(word.length() >= 4)

您正在扫描并获取输入,直到 word.length()

所以,它不会进入下一个 if 语句。

更好的实现是使用 else 子句

    if(word.length() <4) {  

        System.out.println("Word is to short ");
        System.out.println("Plese re-enter");
        word = scan.next();

    } else {

        if(word.charAt(0) == 'D')      
        {
            System.out.println("Big D"); 
        } else

        if( word.charAt(0) !='D')
        {
            System.out.println("No big D");
        }
    } 
}

此外,如果您正在寻找 “Big D”,您应该检查 'D' 而不是 'd'

此外,字符串中第一个字符的索引为 0。因此,您应该使用 word.charAt(0) == 'D',而不是现在在代码中使用的索引 1。索引 1 将返回第二个字符。

【讨论】:

  • 如果解决方案对您有效,请随时投票并接受答案。干杯! :)
【解决方案2】:

您检查单词是否短于 4 个字母,以及单词是否长于 4 个字母。

您的代码中绝对没有包含 4 个字母的单词。

if(word.length() >= 4)

应该使用。

【讨论】:

  • 谢谢你......工作就像一个魅力
  • 乐于助人。不过,您应该接受另一个答案(Swayams),它扩展了我没有真正看过的其他几点,并且总体上更好:)
猜你喜欢
  • 2012-05-06
  • 2012-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
相关资源
最近更新 更多