如果我有一个包含命令的String
,我希望程序读取它并执行它所说的内容。
示例:
如果我有一个功能:
private void move(float position, float speed){
.....
}
和String
String command = "MOVE 305 5"
其中“MOVE”调用move()
函数,“305”是位置,“5”是速度。
所以,它应该是这样的:
move(305, 5);
如何使用此字符串调用函数?
答案 0 :(得分:5)
如果所有命令的格式相同,则应该有一个switch语句,它将在您可能拥有的命令之间切换。这样,您将在需要时使用字符串中的args调用每个函数。
示例:强>
String[] parts = command.split(' ');
switch(parts[0])
{
case "MOVE":
float position = Float.parseFloat(parts[1])
float speed = Float.parseFloat(parts[2])
move(position, speed);
break;
case ... :
...
default:
System.out.println("Unknown command");
break;
}
答案 1 :(得分:3)
您可以对不同的可能命令使用枚举,以及其他答案中已显示的开关案例。
枚举:
public enum CommandType{
MOVE, STOP;
}
示例用法:
String[] splitted = command.split("\\s");
CommandType currentCommand = CommandType.valueOf(splitted[0]);
switch(currentCommand){
case MOVE :
move(Float.parseFloat(splitted[1]),Float.parseFloat(splitted[2]));
break;
case STOP :
stop();
break;
default :
break;
}