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