如何从Java Scanner输入中获取第二个字?

时间:2014-09-24 19:58:42

标签: java string java.util.scanner

也许只需要一个String的方法,但我真的需要从Scanner输入得到第二个单词的值,如下所示:

Scanner in = new Scanner(System.in);
String a;
a = in.nextLine();

3 个答案:

答案 0 :(得分:2)

使用http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-

像这样a.split(" "),结果将是大小为2的数组,其中第二个元素将是results.txt

答案 1 :(得分:2)

假设您将“单词”定义为由空格分割的部分,并且输入了两个单词:

Scanner in = new Scanner(System.in);
String a;
a = in.nextLine();
String secondWord = a.substring(a.indexOf(" "));

如果可能有更多,请使用split:

Scanner in = new Scanner(System.in);
String a;
a = in.nextLine();
String secondWord = a.split("\\s+")[1];

答案 2 :(得分:1)

您可以使用scanner.next()。一个单元测试用例来证明:

@Test
public void testSecondWordSingleLine() {
    Scanner scanner = new Scanner("hello hi there");
    scanner.next();
    assertEquals("hi", scanner.next());
}

如果第二个单词在新行上,它也可以工作,例如:

@Test
public void testSecondWordMultiLine() {
    Scanner scanner = new Scanner("hello\nhi there");
    scanner.next();
    assertEquals("hi", scanner.next());
}

@Test
public void testSecondWordMultiLineWithNextLineFirst() {
    Scanner scanner = new Scanner("hello\nhi there");
    scanner.nextLine();
    assertEquals("hi", scanner.next());
}