控制台输入错误扫描仪
Scanner For Console Input Error
将以下内容作为控制台输入:
F 6 100
我希望 6
分配给 duration
,100
分配给 speed
:
if(command.equalsIgnoreCase("F"))
myf.setWheelVelocities(speed,speed,duration);
但是上面的代码似乎不起作用。完整代码如下:How do I correctly assign the console input to the setWheelVelocities
method parameters of the Finch robot?
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();
}
}
您必须拆分,在此 link 中提供了如何按字符串中的空格拆分的答案:
How do I split a string with any whitespace chars as delimiters?
将以下内容作为控制台输入:
F 6 100
我希望 6
分配给 duration
,100
分配给 speed
:
if(command.equalsIgnoreCase("F"))
myf.setWheelVelocities(speed,speed,duration);
但是上面的代码似乎不起作用。完整代码如下:How do I correctly assign the console input to the setWheelVelocities
method parameters of the Finch robot?
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();
}
}
您必须拆分,在此 link 中提供了如何按字符串中的空格拆分的答案: How do I split a string with any whitespace chars as delimiters?