2016-02-16 68 views
0

鉴于以下作为控制台输入:扫描器控制台输入错误

F 6 100 

我希望6被分配给duration,并且100分配给speed

if(command.equalsIgnoreCase("F")) 
myf.setWheelVelocities(speed,speed,duration); 

上面的代码但似乎并不奏效。完整的代码如下:我如何正确地将控制台输入分配给Finch机器人的setWheelVelocities方法参数?

import edu.cmu.ri.createlab.terk.robot.finch.Finch; 
import java.util.Scanner; 
public class CS1810 { 

    public static void main(String args[]) 
    { 
     Scanner scan = new Scanner(System.in); 
     Finch myf = new Finch(); 

     // Welcome Message 
     System.out.println("Welcome to Finch Robot Remote Navigation!!!"); 
     System.out.println(); 

     // Instructions 
     System.out.println("Instructions on how to navigate and commands to be used:"); 
     System.out.println("To move forward type in 'F' followed by a space and then enter an integer representing 'duration' followed by a space and then enter an integer representing 'speed'."); 
     System.out.println("To move left or right type in 'L' or 'R' followed by a space and then enter an integer representing 'duration' followed by a space and then an integer representing 'speedLeft' followed by a space and then an integer representing 'speedRight'."); 
     System.out.println("To backtrack type in 'B' followed by a space and then enter an integer representing 'track' which is the number of commands you want to backtrack."); 
     System.out.println("To stop the program type in 'S'."); 
     System.out.println(); 

     // Rules 
     System.out.println("Rules for commands and values entered:"); 
     System.out.println("You can only enter 'F,L,R,B and S' as commands."); 
     System.out.println("You can only enter a 'duration' value which is less than or equal to 6."); 
     System.out.println("You can only enter a 'speed','speedLeft' and 'speedRight' value between -100 and 100."); 
     System.out.println("You can only enter a 'backtrack' value equal to or less than the number of commands you have entered before:"); 
     System.out.println(); 

     //Enter Command 
     System.out.println("Enter your command below:"); 
     String command = (""); 
     int duration = scan.nextInt(); 
     int speed = scan.nextInt(); 

     // Ignore Cases 
     while((command.equalsIgnoreCase("F"))||(command.equalsIgnoreCase("L"))||(command.equalsIgnoreCase("R"))||(command.equalsIgnoreCase("B"))||(command.equalsIgnoreCase("S"))) 
     { 
      if(command.equalsIgnoreCase("F")) 
      myf.setWheelVelocities(speed,speed,duration); 
      System.out.println("Enter a new command"); 
      command = scan.nextLine();  
     } 
     myf.quit(); 
    } 
} 
+0

是的,这是可以做到。只需将您的输入输入到一个字符串中,然后在空间上分割并分配给每个变量。 – tnw

+0

请问这个怎么办? – CodeJava

+0

请只粗略搜索一下Google如何输入字符串并用java解析它。 – tnw

回答

-1

你有分裂,然后在提供这个环节是回答如何通过空格在字符串分割: How do I split a string with any whitespace chars as delimiters?

+0

这应该是一条评论。我知道你现在还不能评论,但这不是将评论添加为答案的借口。事实上,这个问题甚至可能是你所链接问题的重复。 – tnw

+0

是的,我还不能评论 – i3rd