我是Java的新手,正试图了解Scanner类。我正在使用example code来了解Scanner类的skip(String Pattern)方法。我稍微调整了代码,然后将其更改为
import java.util.*;
public class ScannerDemo {
public static void main(String[] args) {
String s = "Hello World! 3 + 3.0 = 6.0 true ";
// create a new scanner with the specified String Object
Scanner scanner = new Scanner(s);
// changed the string to skip
scanner.skip("World");
// print a line of the scanner
System.out.println("" + scanner.nextLine());
// close the scanner
scanner.close();
}
}
我期望的输出是
Hello ! 3 + 3.0 = 6.0 true
但我得到
NoSuchElementException
。请有人指出我的错误。 最佳答案
不是nextLine会给您例外,而是skip(“ World”)。
扫描仪启动时,它指向“ Hello Word ...”中的“ H”,即第一个字母。
然后,您告诉他跳过,并且必须为跳过给出正则表达式。
现在,跳到“世界”一词之后的一个很好的正则表达式是:
scanner.skip(".*World");
“。* World”表示“每个字符后跟世界多次”。
这会将扫描仪移至“!”在“ Hello World”之后,因此nextLine()将返回
! 3 + 3.0 = 6.0 true
按照跳过,“ Hello”部分已被跳过。
关于java - Java中的Scanner.skip(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25700922/