在我的软件中,我需要将字符串拆分为单词。我目前有超过19,000,000个文档,每个文档超过30个单词。以下两种方法中哪一种是最好的方法(就性能而言)?StringTokenizersTokenize=newStringTokenizer(s,"");while(sTokenize.hasMoreTokens()){或String[]splitS=s.split("");for(inti=0;i 最佳答案 如果您的数据已经在数据库中,您需要解析字符串,我建议重复使用indexOf。它比任何一种解决方案都快很多倍。但是,从数据库中获取
在我的软件中,我需要将字符串拆分为单词。我目前有超过19,000,000个文档,每个文档超过30个单词。以下两种方法中哪一种是最好的方法(就性能而言)?StringTokenizersTokenize=newStringTokenizer(s,"");while(sTokenize.hasMoreTokens()){或String[]splitS=s.split("");for(inti=0;i 最佳答案 如果您的数据已经在数据库中,您需要解析字符串,我建议重复使用indexOf。它比任何一种解决方案都快很多倍。但是,从数据库中获取
例如,我从一个文本文件中提取一个文本字符串,我需要这些词来形成一个数组。但是,当我这样做时,有些单词以逗号(,)或句号(.)结尾,甚至带有括号(这都是完全正常的)。我想要做的是摆脱那些字符。我一直在尝试使用Java中那些预定义的String方法来做到这一点,但我无法绕过它。 最佳答案 将变量重新分配给子字符串:s=s.substring(0,s.length()-1)也是解决问题的另一种方法:您可能还想考虑使用StringTokenizer读取文件并将分隔符设置为您不想成为单词一部分的字符。
例如,我从一个文本文件中提取一个文本字符串,我需要这些词来形成一个数组。但是,当我这样做时,有些单词以逗号(,)或句号(.)结尾,甚至带有括号(这都是完全正常的)。我想要做的是摆脱那些字符。我一直在尝试使用Java中那些预定义的String方法来做到这一点,但我无法绕过它。 最佳答案 将变量重新分配给子字符串:s=s.substring(0,s.length()-1)也是解决问题的另一种方法:您可能还想考虑使用StringTokenizer读取文件并将分隔符设置为您不想成为单词一部分的字符。
我想知道如何在Java中将多个定界符与StringTokenizer一起使用。例如,其中一个!,*,/,^将作为分隔符出现。而且一次只会有一个。 最佳答案 使用constructorwithtwoarguments,其中第二个是分隔符。StringTokenizertokenizer=newStringTokenizer(yourString,"!*^/"); 关于java-在StringTokenizer中使用多个定界符,我们在StackOverflow上找到一个类似的问题:
我正在尝试使用wordcount的输出文件作为MapReduce的输入文件,它将显示每个计数有多少(有多少单词出现一次、两次、三次等)。我想使用每个单词的计数作为键,1作为值,跳过单词本身。如果输入文件是这样的:422apple3fruit2gorilla9monkey3zebra12输出应该是:213291121使用StringTokenizer打散文件,下面map函数中的nextToken()给出NoSuchElementException。publicstaticclassTokenizerMapperextendsMapper{privatefinalstaticIntWrit
Java文档似乎没有提及关于弃用StringTokenizer的任何内容,但我一直听说它在很久以前是如何被弃用的。是因为它有错误/错误而被弃用,还是String.split()总体上更好用?我有一些使用StringTokenizer的代码,我想知道我是否应该认真考虑重构它以使用String.split(),或者是否弃用纯粹是为了方便,我的代码是安全的。 最佳答案 Java10StringTokenizer--未弃用Java9StringTokenizer--未弃用Java8StringTokenizer--未弃用Java7Strin
我刚刚了解了Java的Scanner类,现在我想知道它如何与StringTokenizer和String.Split进行比较/竞争。我知道StringTokenizer和String.Split仅适用于字符串,那么我为什么要使用Scanner处理字符串呢?Scanner是否只是为拆分提供一站式购物服务? 最佳答案 它们本质上是类(class)的马。Scanner专为需要解析字符串、提取不同类型数据的情况而设计。它非常灵活,但可以说没有为您提供最简单的API来简单地获取由特定表达式分隔的字符串数组。String.split()和Pat
我刚刚了解了Java的Scanner类,现在我想知道它如何与StringTokenizer和String.Split进行比较/竞争。我知道StringTokenizer和String.Split仅适用于字符串,那么我为什么要使用Scanner处理字符串呢?Scanner是否只是为拆分提供一站式购物服务? 最佳答案 它们本质上是类(class)的马。Scanner专为需要解析字符串、提取不同类型数据的情况而设计。它非常灵活,但可以说没有为您提供最简单的API来简单地获取由特定表达式分隔的字符串数组。String.split()和Pat