Java:如何轻松地从控制台输入中获取值

时间:2012-10-23 03:49:30

标签: java string console split readline

作为用户,我在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

任何建议表示赞赏, 戴夫

4 个答案:

答案 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类。它有几种方法可以帮助您阅读前intcharString等不同类型的输入。

答案 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