java - 如何使用数据列表检查多行输入

标签 java

我试图让java接受x行的输入,并让它检查if else树中每行的输出。我只能让它检查一行输入。请帮忙,我是 Java 编程新手。 这就是我这么胖的原因:

package Javatest;
import java.util.Scanner;

public class Jtest {

  public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    System.out.println("Enter Part Number: ");
    String price = input.nextLine();

    if("700212129".equals(price)){
        System.out.println("$280.00");
    }else{
      if("100010B".equals(price)){
        System.out.println("$52.50");
      }else{
        if("100030B".equals(price)){
          System.out.println("$7.18");
        }else{
          if("1189A-BELDEN".equals(price)){
            System.out.println("$140.00");
          }else{
            System.out.println("#N/A");
            return;     
          }             
        }
      }
    }
  }
}

最佳答案

尝试提取每个部分的逻辑。这是一个单独初始化列表、等待输入、向下滚动内容并搜索代码以提取价格的实现。

package Javatest;

import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;

public class Jtest {

    private static final String EXIT_CODE = "exit"; 
    private Set<Stuff> stuffs = new LinkedHashSet<Stuff>();

    public static void main(String[] args) {
        Jtest jtest = new Jtest();
        jtest.initList();
        while(true) {
            System.out.println("Enter Part Number: ");
            Scanner input = new Scanner(System.in);
            String inputLine = input.nextLine();
            if(inputLine.equals(EXIT_CODE)){
                System.out.println("Exiting");
                break;
            }
            String price = jtest.findPrice(inputLine);
            System.out.println("Price: " + price);
        }
    }

    private void initList() {
        stuffs.add(new Stuff("700212129", "$280.00"));
        stuffs.add(new Stuff("100010B", "$52.50"));
        stuffs.add(new Stuff("100030B", "$7.18"));
        stuffs.add(new Stuff("1189A-BELDEN", "$140.00"));
    }

    private String findPrice(String code) {
        for(Stuff stuff: stuffs){
            if(code.equals(stuff.getCode())){
                return stuff.getPrice();
            }
        }
        return "#N/A";      
    }

    public static class Stuff {

        private String code;
        private String price;

        public Stuff(String code, String price) {
            this.code = code;
            this.price = price;
        }

        public String getPrice(){
            return this.price;          
        }

        public String getCode(){
            return this.code;           
        }
    }
}

这是一个非常基本的实现,但它可以激励您构建更好的解决方案。

关于java - 如何使用数据列表检查多行输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44657550/

相关文章:

java - 停止、中断、挂起和恢复 Java 线程

java - 为什么将字符声明为 ''(空)会抛出异常?

java - 连接到网站 jsoup 项目时出错(Jsoup 类型未定义方法 connect(String))

java - 如何强制 BoxLayout 和 JScrollPane 限制内容大小?

java - java中带有索引和对象的T setter

c# - 抽象方法与接口(interface)

java - 编写字符串评估函数

java - 我应该使用哪个 Java EE 服务器?

java - 检查 Thymeleaf 模板中的 Null 属性

java - 如何向方法的参数添加 JSR 303 验证