我有一个关于StringTokenizer
类和java.util.Scanner
类之间的区别的问题吗?虽然两者都用于解剖(标记)目的。哪一个更好用,效率更高?这两个Java类是相互替代还是具有不同的目的?StringTokenizer和java.util.Scanner之间有什么区别
0
A
回答
1
从JavaDoc
:
的StringTokenizer是保留兼容性 原因,虽然它的使用是在新代码气馁的遗留类。建议 任何寻求此功能的人都使用字符串 或
java.util.regex
包的split
方法代替。
1
一个大区别是,扫描仪可以对输入流进行操作,所以你并不需要有它在内存中的所有一次(在某些情况下甚至是不可能的,例如当连续读取用户输入一个控制台)。
2
从StringTokenizer类的javadoc
string tokenizer类允许应用程序将字符串分解成 令牌.... StringTokenizer的方法不中 标识符,数字区分,并引述串...
来自扫描仪的Javadoc
一个简单的文本扫描器可以解析原始典型值es和字符串 使用正则表达式。
所以扫描仪不同的StringTokenizer有像nextInt,nextBoolean等 方法虽然扫描仪是有用的在某些情况下,当你需要分析用户输入containig数字的StringTokenizer在大多数情况下,可以用org.apache.commons更换。 lang.StringUtils.split - 它不使用正则表达式,速度非常快。
1
扫描仪设计用于需要解析字符串,提取不同类型数据的情况。如果要从程序之外的源解析文本数据,例如从文件或用户解析文本数据,那就是扫描仪派上用场。
StringTokenizer总是在那里。它是所有人中速度最快的,但类似枚举的习语看起来可能不像其他人那样优雅。
拆分在JDK 1.4上存在。因为它可以从String类中调用,所以比标记器慢,但更易于使用。
相关问题
- 1. dpm()和dsm()之间有什么区别?
- 2. @dynamic和@synthesize之间有什么区别?
- 3. vbNullString和“”之间有什么区别吗?
- 4. * zoom和zoom之间有什么区别?
- 5. String.Concat,string.format和+之间有什么区别?
- 6. StaticLayout和DynamicLayout之间有什么区别
- 7. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之间有什么区别?
- 8. :: after和after之间有什么区别?
- 9. bundle.setup和bundle.require之间有什么区别
- 10. (int)和intval()之间有什么区别?
- 11. %.02f和%.2f之间有什么区别?
- 12. {$ var}和$ var之间有什么区别?
- 13. ReleaseFloatArrayElements和DeleteLocalRef之间有什么区别
- 14. {0}和“”之间有什么区别?
- 15. getA()和this.getA()之间有什么区别?
- 16. @observable和@published之间有什么区别
- 17. $ {}和#{}之间有什么区别?
- 18. url.getFile()和getpath()之间有什么区别?
- 19. KVC和Properties之间有什么区别?
- 20. Lazy.Force()和Lazy.Value之间有什么区别
- 21. UIView和CALayer之间有什么区别?
- 22. form_for和remote_form_for之间有什么区别
- 23. STDIN和tty之间有什么区别?
- 24. “层”和“层”之间有什么区别?
- 25. 1.1em和1.05em之间有什么区别?
- 26. proc和lambda之间有什么区别?
- 27. ViewFlipper和ViewSwitcher之间有什么区别
- 28. typedef和宏之间有什么区别?
- 29. “$^N”和“$ +”之间有什么区别?
- 30. NSInvocation和block之间有什么区别?
正如我在我的答案中所述,String.split在高负载应用程序中相当慢。 StringUtils.split的速度更快。 – SirVaulterScoff
我认为java.util.regex.Pattern类的split方法会比两个更好 – sns
它比StringUtils.split慢10倍左右。 – SirVaulterScoff