【问题标题】:How to use else statement to check string entry如何使用 else 语句检查字符串条目
【发布时间】:2014-03-29 15:11:45
【问题描述】:

我在我的程序中添加了一个包含字符串值的数组,我想在其中添加一条 else 语句,这样如果有人输入了一个未包含在数组中的值,in 将打印出一条消息 invalid entry

我已经在程序中写了这个,但是如果输入了正确的值,当我运行代码时仍然会出现无效的条目。

输入您的姓名 巴里 您已通过验证,您可以使用电梯

无效条目

无效条目

无效条目

这就是我得到的

import java.util.Scanner;

public class Username

{
public static void main (String[]args)
{

    Scanner kb = new Scanner (System.in);
    // array containing usernames 
    String [] name = {"barry", "matty", "olly","joey"}; // elements in array


    System.out.println("Enter your name");
    String name1 = kb.nextLine();
    for (int i = 0; i < name.length; i++) {
        if(name[i].equals(name1)) {
        System.out.println("you are verified you may use the lift");
        }else{System.out.println ("Invalid entry");
    }
}

【问题讨论】:

    标签: java arrays string if-statement


    【解决方案1】:

    您可以将数组转换为正在使用的列表contains

    System.out.println("Enter your name");
    String name1 = kb.nextLine();
    if (Arrays.asList(name).contains(name1)) { 
        System.out.println("you are verified you may use the lift");
    } else {
        System.out.println ("Invalid entry");
    }
    

    【讨论】:

      【解决方案2】:

      如果找到用户,您可以添加一个布尔变量并保留信息。

      试试这个代码:

      public static void main(String[] args) {
      
          Scanner kb = new Scanner(System.in);
          // array containing usernames
          String[] name = { "barry", "matty", "olly", "joey" }; // elements in
                                                                  // array
      
          System.out.println("Enter your name");
          String name1 = kb.nextLine();
          boolean b = true;
          for (int i = 0; i < name.length; i++) {
              if (name[i].equals(name1)) {
                  System.out.println("you are verified you may use the lift");
                  b = false;
                  break;
              }
          }
      
          if (b) {
              System.out.println("Invalid entry");
          }
      }
      

      【讨论】:

        【解决方案3】:

        我认为这是因为您如何迭代和比较。您使用 for 循环将输入的值与所有名称进行比较。 Barry 不等于“matty”、“olly”或“joey”,但您的 for 循环仍会比较所有这些。

        你的问题是,如果所有比较的输出。

        我建议在循环之前设置一个布尔值,如果找到匹配项 - 将该布尔值设置为 true。 然后当循环结束时,只需检查布尔值是真还是假,并输出所需的代码。

        例子:

        import java.util.Scanner;
        
        public class Username
        
        {
           public static void main (String[]args)
           {
        
        Scanner kb = new Scanner (System.in);
        // array containing usernames 
        String [] name = {"barry", "matty", "olly","joey"}; // elements in array
        
        
        System.out.println("Enter your name");
        String name1 = kb.nextLine();
        
        Boolean foundMatch = false;
        
        for (int i = 0; i < name.length; i++) {
            if(name[i].equals(name1)) 
                foundMatch = true;
        }
        if(foundMatch)
           System.out.println("you are verified you may use the lift");
        else
            System.out.println ("Invalid entry")
        

        }

        【讨论】:

          【解决方案4】:

          您可以指定boolean 值来保存您的状态。

          boolean contais = false;
          for (int i = 0; i < name.length; i++) {
              if(name[i].equals(name1)) {
                  contais = true;
                  break;// to stop looping
              }else{contais = false;}
          }
          
          if(contais) {
              System.out.println("you are verified you may use the lift");
          else {
              System.out.println ("Invalid entry");
          }
          

          【讨论】:

            【解决方案5】:

            你的代码:

                if(name[i].equals(name1))
            

            试试这个:

                   if(name[i].equalsIgnoreCase(name1))
            

            【讨论】:

              猜你喜欢
              • 2023-02-06
              • 1970-01-01
              • 1970-01-01
              • 2018-03-09
              • 2015-11-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-07-10
              相关资源
              最近更新 更多