Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么赢了';你能在这里打印最后一个字吗?_Java_Java.util.scanner_System.in - Fatal编程技术网

Java 为什么赢了';你能在这里打印最后一个字吗?

Java 为什么赢了';你能在这里打印最后一个字吗?,java,java.util.scanner,system.in,Java,Java.util.scanner,System.in,为什么要打印整个字符串“1fish2fish” 但这只打印“1fish2”,即使我输入“1,fish,2,fish” 在第一种情况下,扫描器不需要最后一个分隔符,因为它知道没有更多的字符。因此,它知道最后一个标记是“fish”,并且没有更多的字符要处理 在System.In扫描的情况下,只有在系统输入中输入第四个“,”时,第四个令牌才被视为已完成 请注意,默认情况下,空格被视为分隔符。但是,一旦您使用useDelimiter指定了一个备用分隔符,那么空格字符就不再对标记进行划分 事实上,您的第一

为什么要打印整个字符串“1fish2fish”

但这只打印“1fish2”,即使我输入“1,fish,2,fish”


在第一种情况下,扫描器不需要最后一个分隔符,因为它知道没有更多的字符。因此,它知道最后一个标记是“fish”,并且没有更多的字符要处理

在System.In扫描的情况下,只有在系统输入中输入第四个“,”时,第四个令牌才被视为已完成

请注意,默认情况下,空格被视为分隔符。但是,一旦您使用useDelimiter指定了一个备用分隔符,那么空格字符就不再对标记进行划分

事实上,您的第一次试用可以修改以证明空白字符不再是分隔符

  public static void main(String[] args) {
    String input = "1,fish,2,fish\n\n\n";
    Scanner sc = new Scanner(input);
    sc.useDelimiter(",");
    System.out.print(sc.nextInt());
    System.out.println(sc.next());
    System.out.print(sc.nextInt());
    System.out.println(sc.next());

    System.out.println("Done");
    sc.close();

  }

新行字符将被视为第四个标记的一部分。

扫描器等待您输入另一个“,”因此当您输入“,”之后,它将在
1fish2
之后立即打印fish


所以通过
1,fish,2,fish,
而不是
1,fish,2,fish
我检查了第一个片段;它正确地打印了-

  1fish
  2fish
链接-


如果您的期望有所不同,请告知我们。

是的,第一个片段按预期打印。第二个是我在理解上遇到的问题。
  public static void main(String[] args) {
    String input = "1,fish,2,fish\n\n\n";
    Scanner sc = new Scanner(input);
    sc.useDelimiter(",");
    System.out.print(sc.nextInt());
    System.out.println(sc.next());
    System.out.print(sc.nextInt());
    System.out.println(sc.next());

    System.out.println("Done");
    sc.close();

  }
  1fish
  2fish