我有一个String数组,如下所示:
String [] str_cmd_arr={"cmd1", "cmd2"};
鉴于此," cmd1"输出"执行命令1",而" cmd2"将输出"执行命令2"。
从我的str_cmd_arr
,如何在Java / Android中单独打印输出?目前,我正在使用此代码
for (int i=0;i<str_cmd_arr.length;i++){
if(i<1){
Log.d("TAG","perform command 1");
}
else{
Log.d("TAG","perform command 2");
}
}
答案 0 :(得分:5)
这里真正的解决方案:使用地图,比如
Map<String, String> commandsAndOutput = new HashMap<>();
commandsAndOutput.put("cmd1", "cmd1 output");
...
以后再做
String output = commandsAndOutput.get("cmd1");
例如。
另一种,可能更多理智的方式:考虑使用枚举,例如:
public enum Command {
CMD1, CMD2;
}
如果您在不同命令之间进行选择时寻找更多“编译时”支持。你现在可以写下来:
Command cmd = ...
switch(cmd) {
case(CMD1) : ...
但另一个警告:人们应该注意这种枚举/切换代码。在大多数情况下,使用抽象基类 Command 和特定子类的“基于OO的真实”设计是更好的选择。
真正的教训:你想学习一些基础知识,就像找到here的教程一样。你知道,Android的编程没有意义......如果你不了解像Maps这样的基本内容。从这个意义上说,很难给你“好”的建议,因为“好”的东西是抽象的基类解决方案 - 这似乎完全超出你现有的技能。
答案 1 :(得分:2)
将您的if
语句替换为
if(str_cmd_arr[i]).equals("cmd1"){
答案 2 :(得分:2)
您可以使用循环和switch
语句
例如
for (int i=0;i<str_cmd_arr.length;i++){
switch(str_cmd_arr[i]) {
case "cmd1":
Log.d("TAG","perform command 1");
break;
case "cmd2":
Log.d("TAG","perform command 2");
break;
}
}