我最近正在参加USACO竞赛。我已经找到答案的正确算法,但是我只有10个案例中有7个测试案例,其余三个显示为“超过时间限制”。我在GeeksforGeeks和javaTpoint上搜索了发生这种情况的原因,并且这两个站点告诉我算法效率低下或使用Scanner
而不是BufferedReader
。
[在我的Java经验(2年)中,我一直在使用Scanner
,对其他任何事物都不熟悉。尽管梳理了几页,但我仍无法找到令人满意的答案,因为我想逐步使用Scanner
中的哪些方法转换为BufferedReader
中的哪些方法。由于我不熟悉BufferedReader
,因此我可能会问错问题。我需要的方法是BufferedReader
和nextLine()
的nextInt()
等效项。每个类的用例是什么?如何使用Scanner
在BufferedReader
中实现这些方法的相同功能?
[BufferedReader中有两种方法可以从任何数据流中读取。
int read(char[] cbuf, int off, int len)
用于将字符读入数组的一部分。
String readLine()
用于读取一行文本。
BufferedReader在要读取字符串类型的数据时更有用,因为可以使用readLine()
方法。对于int,long等自定义类型,首选仅使用Scanner。因此,在BufferedReader中没有nextInt()
,nextLong()
的等效方法。