我想让用户能够在运行时命名String
变量。
Scanner input = new Scanner(System.in);
String name = input.nextLine();
该程序要求我输入一个单词。然后我如何创建一个标识符是用户输入的变量?
我试过这个:
String (name) = "blah";
但它不起作用。
答案 0 :(得分:2)
您可以使用地图
String input1 = ...;
String input2 = ...;
Map m = new HashMap<String,String>();
m.put(input1, input2);
答案 1 :(得分:1)
这在java中不起作用,导致变量名在运行时“消失”。编译版本不再使用它们。
在PHP中,它是可能的,因为PHP在运行时被解释。
您可以获得的“最接近”是使用散列映射:
Map<String,String> kvps = new HashMap<String,String>();
kvps.put ("varname", "varvalue");
kvps.put ("hello", "world");
kvps.put ("foo", "bar");
for (Map.Entry<String, String> kvp: kvps.getEntrySet()){
System.out.println(kvp.getKey() + " = " + kvp.getValue());
}
答案 2 :(得分:0)
有一种方法可以获得变量的名称 - 如果它是一个类的字段,那么你可以使用反射:
Field[] classFields = classInstance.getDeclaredFields();
现在您可以获取字段名称:
classFields[index].getName();