Scanner 的 reset() 方法有什么作用?

What does the reset() method of Scanner do?

提问人:Mohammed Taqi 提问时间:11/12/2022 最后编辑:LaurelMohammed Taqi 更新时间:11/14/2022 访问量:51

问:

我有一个简单的 Java 程序,如下所示:java.util.Scanner

package com.company;

import java.io.IOException;
import java.util.Scanner;

public class Favorite_Number {
    public static void main(String[] args) throws IOException {
        int X,sum = 0,rem = 0,t;
        Scanner s = new Scanner(System.in);
        t = s.nextInt();
        while(t!=0) {
            s.reset();  // <-- what does it do?
            X = s.nextInt();
            while (X > 0) {
                rem = X % 10;
                if (rem == 5) {
                    sum++;
                }
                X = X / 10;
            }
            System.out.println(sum);
            sum = 0;
            t--;
        }

    }
}

做什么?如果我删除它,该程序仍然可以正常工作。s.reset()

java.util.scanner 用户输入

评论

0赞 Tim Roberts 11/12/2022
您阅读了文档吗?这就是我所做的一切。如果默认分隔符已更改,它会重置它。您没有更改它,因此无需重置。
0赞 Community 11/12/2022
请澄清您的具体问题或提供其他详细信息,以准确说明您的需求。正如目前所写的那样,很难确切地说出你在问什么。

答:

1赞 Syed Asad Manzoor 11/12/2022 #1

reset()这里用例子来解释

根据文件目的,如:

重置扫描程序时,将丢弃其所有显式状态信息,这些信息可能已通过调用 useDelimiter(java.util.regex.Pattern)、useLocale(java.util.Locale) 或 useRadix(int) 而更改。

文档参考:https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#reset--