Java 如何随机访问StringTokenizer中的第n个元素
无论如何,我们都可以直接访问stringTokenizer中的某个(比如说第20个)元素。偶尔我只需要其中的某个元素,不需要其他元素,但我必须遍历所有元素 编辑:我还想忽略空元素 我遗漏了什么吗?你可以用它来代替Java 如何随机访问StringTokenizer中的第n个元素,java,string,stringtokenizer,string-split,Java,String,Stringtokenizer,String Split,无论如何,我们都可以直接访问stringTokenizer中的某个(比如说第20个)元素。偶尔我只需要其中的某个元素,不需要其他元素,但我必须遍历所有元素 编辑:我还想忽略空元素 我遗漏了什么吗?你可以用它来代替标记器 例如: String[] split = "you string is splitting".split(" "); split[2]; // random access to the 3rd element of split 当然,在访问子索引之前,您需要检查您的s
标记器
例如:
String[] split = "you string is splitting".split(" ");
split[2]; // random access to the 3rd element of split
当然,在访问子索引之前,您需要检查您的split
是否确实有那么多的元素。标记器用于按顺序访问元素(有点像LinkedList
)。您必须遍历所有令牌并将它们存储在某种随机访问集合中(ArrayList
),或者使用另一种方法拆分原始字符串/流。您可以尝试Apache Commons Lang的类,该类可以拆分字符串,同时忽略空元素并为您处理null
字符串
为了确定哪一个是第n个标记,标记器必须读取至少n个标记。因此,使用string#split()
或StringUtils.split(…)
创建字符串数组可能更容易
请注意,我更喜欢StringUtils.split(…)
,因为如果我不需要空元素,它不会返回空元素,即StringUtils.split(“,a,b,c;;d,e,,,,”;”)
将返回[“a”、“b”、“c”、“d”、“e”、“f”]
,而String#split()
将返回[”、“a”、“b”、“c”、“d”、“e”、“e”、“f”]
是否可以在多个不同的分隔符处拆分?是否可以忽略空元素?是的,可以在任何正则表达式处拆分。这将给您很大的灵活性。@SyedAqeel基本上是的,您可以,例如,在、
或上拆分代码>意思是“a,b;c”
将导致[“a”,“b”,“c”]
[-链接到拆分