如何从Java扫描器输入中获取第二个单词?

如何从Java扫描器输入中获取第二个单词?,java,string,java.util.scanner,Java,String,Java.util.scanner,也许它只需要一个String的方法,但我确实需要从Scanner接收的输入中获取第二个单词的值,如下所示: Scanner in = new Scanner(System.in); String a; a = in.nextLine(); 使用 像这样a.split(“”结果将是大小为2的数组,其中第二个元素将是results.txt使用 与此类似,a.split(“”结果将是大小为2的数组,其中第二个元素将是results.txt假设您将“word”定义为按空格分割的部分,并且恰好输入了两个

也许它只需要一个
String
的方法,但我确实需要从
Scanner
接收的输入中获取第二个单词的值,如下所示:

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

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

使用

与此类似,
a.split(“”
结果将是大小为2的数组,其中第二个元素将是results.txt

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

Scanner in = new Scanner(System.in);
String a;
a = in.nextLine();
String secondWord = a.substring(a.indexOf(" "));
如果可能有更多,请使用拆分:

Scanner in = new Scanner(System.in);
String a;
a = in.nextLine();
String secondWord = a.split("\\s+")[1];
假设您将“单词”定义为被空格分割的部分,并且输入了两个单词:

Scanner in = new Scanner(System.in);
String a;
a = in.nextLine();
String secondWord = a.substring(a.indexOf(" "));
如果可能有更多,请使用拆分:

Scanner in = new Scanner(System.in);
String a;
a = in.nextLine();
String secondWord = a.split("\\s+")[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());
}

您可以使用
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());
}

使用
a.split(\\s+)?如果您正在从命令行运行代码,则应考虑使用<代码> ARGs<代码>变量,将其传递给主()/<代码>,而不是从标准输入中读取。使用<代码> A.拆分(“\s++”);<代码>?如果从命令行运行代码,则应考虑使用<代码> ARGs<代码>变量,将其传递给主()/<代码>,而不是从标准输入中读取。