BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
int q = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
此skip()
方法有什么用途?
我可以用另一种方法替换它以获得相同的结果吗?
答案 0 :(得分:0)
让我们阅读skip
的文档:
跳过与从指定字符串构造的模式匹配的输入。
因此skip
告诉扫描仪不要读取用户输入的某些部分,然后继续处理这些部分。在这里,您的模式与Windows换行符\r\n
或其中之一匹配。
...如果存在这种模式。
为什么程序员要写这个?一种可能的解释是避免下次调用nextLine
返回空字符串。有关发生这种情况的信息,请参见this question。
我是否要用另一种方法替换以获得相同的结果?
您可以调用skip(Pattern.compile("..."))
,但实际上这只是同一方法的另一个重载。最接近您正在执行的操作的可能是nextLine
,它使用与您相似的模式。