作为用户,我在java控制台中输入以下命令:
!login <Username> <udpPort>
所以,即
!login Bob 2233
我需要的是从这个输入中轻松获取值:
String username = "Bob";
int port = 2233;
我正在使用BufferedReader来获取输入。
我已经尝试过了:但当然这不起作用。但这就是我想要的:
String [] input = in.readReadLine(); //ofcourse this is not working
然后我可以轻松分配值:
String username = input[2]; //save "Bob"
int port = Integer.parseInt(input[3]); //save 2233
任何建议表示赞赏, 戴夫
答案 0 :(得分:3)
BufferedReaeder
readLine()方法返回String
。
获得字符串后,您需要Split();
(或)StringTokenizer
才能获得单独的字符串。
答案 1 :(得分:2)
扫描仪类最适合从控制台获取输入。
import java.util.*;
public class ConsoleInput {
public static void main(String[] args) {
Scanner scanInput = new Scanner(System.in);
String input = scanInput.nextLine();
System.out.println("The input is : "+ input);
}
}
这是一个简单的类,演示了如何在Java中使用Scanner类。它有几种方法可以帮助您阅读前int
,char
,String
等不同类型的输入。
答案 2 :(得分:0)
我认为您可以使用java.util.Scanner
,如下所示:
Scanner inputScanner = new Scanner(System.in);
inputScanner.next(); //reads whole word
inputScanner.nextInt(); //reads whole numeral
inputScanner.nextLine(); //reads whole line
现在使用nextLine
,阅读该行并拆分
String line = inputScanner.nextLine();
String[] commands = line.split(" "); //splits space delimited words in the line
或使用next()
,在时间读取一个命令,例如
command[0] = inputScanner.next();
command[1] = inputScanner.next();
或者您可以使用next()
和nextInt()
String username = inputScanner.next(); //save "Bob"
int port = inputScanner.nextInt(); //save 2233
此处有更多方法细节。 Scanner
答案 3 :(得分:0)
你应该做
String [] input = in.readReadLine().split("\\s+"); // split the line at spaces
并使用索引1和2,因为数组索引从0开始而不是1
String username = input[1]; //get the second element of the array
int port = Integer.parseInt(input[2]); //get the third element and parse