Java 如何插入用户输入的字符串以指导引用?

Java 如何插入用户输入的字符串以指导引用?,java,java.util.scanner,Java,Java.util.scanner,(在java中,)这可能是也可能不是,我认为这是因为它似乎很短/很容易不存在。基本上我想做的是让用户插入一个状态的名称,然后将其添加到该状态的计数器中,该计数器存储在另一个类中。我希望在不创建50条if/else语句的情况下执行此操作。这是一个伪代码,它代表了我期望它是如何完成的。(此代码将封装在mainclass.java中的while循环中,计数器和状态名位于名为state.java的类中。) 在state.java中: public state(int counter){ } p

(在java中,)这可能是也可能不是,我认为这是因为它似乎很短/很容易不存在。基本上我想做的是让用户插入一个状态的名称,然后将其添加到该状态的计数器中,该计数器存储在另一个类中。我希望在不创建50条if/else语句的情况下执行此操作。这是一个伪代码,它代表了我期望它是如何完成的。(此代码将封装在mainclass.java中的while循环中,计数器和状态名位于名为state.java的类中。)

在state.java中:

 public state(int counter){
}
    public static state Alabama = new state(0);

为了时间起见,我希望有一个类似于上述的快捷方式。

在这种情况下,首选的方法是将状态存储在一个或类似的文件中。这允许您按名称查找状态:

import java.util.*;

class State
{
    static HashMap<String, State> states = new HashMap<String, State>();

    public static State Alabama = new State("Alabama", 0);

    public State(String name, int counter)
    {
        // [ init... ]
        states.put(name, this); // add this state to the collection of states
    }

    public static State getByName(String name)
    {
        return states.get(name);
    }
}

您也可以使用,但应尽可能避免使用。

您不想尝试通过Java名称查找变量(例如,“Alabama”);这是可能的,但比你想处理的复杂得多


如果可以使用外部库,这非常适合番石榴,番石榴可以跟踪某个元素被看到的次数。否则,您可能需要从州名称到计数器的
映射。(注意,在这种情况下,您必须
put(get()+1)
++
不起作用。)

您需要
ArrayList
。此外,类名应该是大写的。您能更具体一点吗?ArrayList将包含状态名称还是用户输入?然后我会检查数组是否与用户输入相等吗?
import java.util.*;

class State
{
    static HashMap<String, State> states = new HashMap<String, State>();

    public static State Alabama = new State("Alabama", 0);

    public State(String name, int counter)
    {
        // [ init... ]
        states.put(name, this); // add this state to the collection of states
    }

    public static State getByName(String name)
    {
        return states.get(name);
    }
}
State.getByName(statename).counter++;