我想创建一个用户数据库,它从控制台中输入的字符串创建一个新变量。我不知道这是否可能,我到处搜索。
答案 0 :(得分:1)
当然,像这样:
// 1. Create a Scanner using the InputStream available.
Scanner scanner = new Scanner( System.in );
// 2. Don't forget to prompt the user
System.out.print( "Type some data for the program: " );
// 3. Use the Scanner to read a line of text from the user.
String input = scanner.nextLine();
// 4. Now, you can do anything with the input string that you need to.
// Like, output it to the user.
System.out.println( "input = " + input );
答案 1 :(得分:1)
有很多方法可以使用Reflection进行操作。但这会导致很多问题和设计问题。
相反,请尝试使用某种类型的键/值存储,以及这样的简单类:
public class KeyValueField
{
public final String Key;
public final String Value;
public KeyValueField(String key, String value)
{
Key = key;
Value = value;
}
}
这样的用法:
System.out.print("Enter field name:");
String key= System.console().readLine();
System.out.print("Enter field value:");
String value = System.console().readLine();
KeyValueField newField = new KeyValueField(key, value);
答案 2 :(得分:1)
您可以使用List
之类的数据结构,它可以容纳许多对象。向对象添加对象时,列表会增加。一个简单的入门列表是java.util.ArrayList
。
让您入门的示例:
// create a new list which can hold String objects
List<String> names = new ArrayList<>();
String nextName = scanner.nextLine();
// read names until the user types stop
while(!nextName.equals("stop")) {
// add new name to the list. note: the list grows automatically.
names.add(nextName);
// read next name from user input
nextName = scanner.nextLine();
}
// print out all names.
for(String name : names) {
System.out.println(name);
}
答案 3 :(得分:0)
我建议使用Hashmap。
import java.util.HashMap;
HashMap<String, String> keyValue = new HashMap<String, String>();
keyValue.put(key, value);