2016-05-29 96 views
0

的功能有什么办法,我可以在终端编写命令状的Java输入传递从终端

config.group1.val1

并以某种方式解析此命令并在Java函数中发送“group1”和“val1”作为两个参数?

我不能通过args []数组在主函数中发送它。

+0

为什么不呢?只需拆分输入字符串并将方法中的单个令牌作为参数传递 –

+0

如何读取写入终端的命令并解析它以传递给java代码。任何想法? – bubai93

+0

为什么不使用扫描仪,因为你不能从args []中获取它们? – Leo

回答

2

这是可以做到的未来:

Scanner scanner = new Scanner(System.in); 
// get the next line from the terminal 
String line = scanner.nextLine(); 
// split it using . as separator 
String[] params = line.split("\\."); 
// Default value 
String value = "unknown"; 
// Assuming that the name of your map is "map" 
Map<String, String> subMap = map.get(params[1]); 
if (subMap != null && subMap.containsKey(params[2])) { 
    value = subMap.get(params[2]); 
} 
// print the value found 
System.out.println(value); 
+0

它得到了一个java.lang.ArrayIndexOutOfBoundsException:0异常在第一行 – bubai93

+0

这段代码假设你启动你的程序config.group1.val1作为参数 –

+0

我的意思是java MyClass config.group1.val1 –