Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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 仍然建议USACO使用StringTokenizer吗?_Java_Parsing - Fatal编程技术网

Java 仍然建议USACO使用StringTokenizer吗?

Java 仍然建议USACO使用StringTokenizer吗?,java,parsing,Java,Parsing,我刚刚开始使用Java解决一些USACO实践问题。然而,我立即遇到了一些关于解析文件输入的混乱 USACO培训页面上说: 重要提示:BufferedReader和StringTokenizer的效率要高得多 与许多其他读取输入的方案相比。他们可以创造巨大的财富 您的程序效率的差异!使用它们 然而,Oracle文档说: StringTokenizer是为兼容而保留的遗留类 原因,尽管新代码不鼓励使用它。建议这样做 任何寻求此功能的人都可以使用String的split方法 或者改为java.util

我刚刚开始使用Java解决一些USACO实践问题。然而,我立即遇到了一些关于解析文件输入的混乱

USACO培训页面上说:

重要提示:BufferedReader和StringTokenizer的效率要高得多 与许多其他读取输入的方案相比。他们可以创造巨大的财富 您的程序效率的差异!使用它们

然而,Oracle文档说:

StringTokenizer是为兼容而保留的遗留类 原因,尽管新代码不鼓励使用它。建议这样做 任何寻求此功能的人都可以使用String的split方法 或者改为java.util.regex包

我在网上发现了各种各样的观点。一些人,包括培训页面,说应该使用
StringTokenizer
,因为它比
String.split()
快,后者比
Scanner
快(尽管答案不同意)。其他人说应该使用
Scanner
String.split()


目前哪种方法最实用?

在编程竞赛中,代码的逻辑和算法部分比获取输入数据的方法更重要

Scanner
StringTokenizer
之间只有几毫秒的差异,这不会对您的解决方案产生任何重大影响


但是,一般来说,Scanner更易于使用,性能也一直很好,而(您所说的)StringTokenizer是一个遗留类,不鼓励使用它。

应该让您了解性能差异
StringTokenizer
似乎要快得多,但速度并不是一切。没有人希望您为他们编写需要在一年内更新的代码,因为它不适用于新的JDK版本。
Scanner
有效、易于使用,通常性能足以满足编程竞赛的需要。