如何随机访问StringTokenizer中的第n个元素



我们是否可以直接访问stringTokenizer中的某个元素(比如第20个)?每隔一段时间,我只需要其中的某个元素,而不需要其他元素,但我必须遍历所有元素。

EDIT:我也想忽略空元素。

我错过了什么吗?

您可以使用String.split代替Tokenizer

例如:

String[] split = "you string is splitting".split(" ");
split[2];  // random access to the 3rd element of split    

当然,在访问它的子索引之前,你需要检查你的split实际上有那么多元素。

您可以尝试Apache Commons Lang的StringUtils类,它可以分割字符串,同时忽略空元素并为您处理null字符串。

标记器必须读取至少n个标记才能确定哪个是第n个标记。因此,使用String#split()StringUtils.split(...)创建字符串数组可能更容易。

请注意,我更喜欢StringUtils.split(...),因为如果我不想要它们,它不会返回空元素,即StringUtils.split(",a,b,c;;d,e,,f",";,");将返回["a","b","c","d","e","f"],而String#split()将返回["","a","b","c","","d","e","","f"]

Tokenizer意味着顺序访问元素(有点像LinkedList)。您必须遍历所有令牌并将它们存储在某种随机访问集合(ArrayList)中,或者使用另一种方法拆分原始字符串/流。

相关内容

  • 没有找到相关文章

最新更新