3

我无法弄清楚如何读取输入行的其余部分。我需要标记第一个单词,然后可能将输入行的其余部分创建为一个完整的标记

public Command getCommand() 
{
    String inputLine;   // will hold the full input line
    String word1 = null;
    String word2 = null;

    System.out.print("> ");     // print prompt

    inputLine = reader.nextLine();

    // Find up to two words on the line.
    Scanner tokenizer = new Scanner(inputLine);
    if(tokenizer.hasNext()) {
        word1 = tokenizer.next();      // get first word
        if(tokenizer.hasNext()) {
            word2 = tokenizer.next();     // get second word
            // note: just ignores the rest of the input line.
        }
    }

    // Now check whether this word is known. If so, create a command
    // with it. If not, create a "null" command (for unknown command).
    if(commands.isCommand(word1)) {
        return new Command(word1, word2);
    }
    else {
        return new Command(null, word2); 
    }
}

输入:

take spinning wheel

输出:

spinning

期望的输出:

spinning wheel
4

4 回答 4

3

利用split()
String[] line = scan.nextLine().split(" ");
String firstWord = line[0];
String secondWord = line[1];

这意味着您需要在空间分割线并将其转换为数组。现在使用 yhe 索引你可以得到任何你想要的词

于 2013-03-01T04:28:58.583 回答
0

你也可以这样试试...

String s = "This is Testing Result";
System.out.println(s.split(" ")[0]);
System.out.println(s.substring(s.split(" ")[0].length()+1, s.length()-1));
于 2013-03-01T04:44:35.113 回答
0

或者 -

String inputLine =//Your Read line
String desiredOutput=inputLine.substring(inputLine.indexOf(" ")+1)
于 2013-03-01T04:35:04.293 回答
0

利用split(String regex, int limit)

String[] line = scan.nextLine().split(" ", 2);

String firstWord = line[0];

String rest= line[1];

请参阅此处的文档

于 2019-02-12T12:27:56.213 回答