java - 使用正则表达式作为 StringTokenizer 的分隔符

标签 java regex delimiter stringtokenizer

我是 java 编程新手,遇到了 StringTokenizer 类。构造函数接受要拆分的字符串和另一个可选的分隔符字符串,在拆分原始字符串时,该字符串的每个字符都被视为单独的分隔符。我想知道是否有任何方法可以通过正则表达式作为分隔符来分割字符串。例如:

String s="34.5xy32.6y45.7x36xy"
StringTokenizer t=new StringTokenizer(s,"xy");
System.out.println(t.nextToken());
System.out.println(t.nextToken());

实际输出是:

34.5
32.6

但是,所需的输出是:

34.5
32.6y45.7x36

希望大家能够帮忙。另外,如果 StringTokenizer 类无法实现,请建议一些解决方法。

提前致谢。

附:有什么方法可以知道 StringTokenizer 当前使用提供的集合中的哪个字符作为分隔符?

最佳答案

在这里,您需要使用String.split(),这将为您提供一个包含所需输出的数组。

它将获取您的输入并将其拆分为与您提供的字符串完全匹配的部分。 StringTokenizer 将拆分您提供的集合中的任何一个,而不是正则表达式。

所以你将代码更改为:

String s="34.5xy32.6y45.7x36xy";
String[] splitString = s.split("xy");
System.out.println(splitString [0]);
System.out.println(splitString [1]);

对于更复杂的示例,您可能还需要对数组进行边界检查,以免超出数组的末尾

关于java - 使用正则表达式作为 StringTokenizer 的分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12017544/

相关文章:

java - Flying Saucer XHTML 中的相对路径?

java - 如何更改输入文件中的所有字母并在输出文件中将它们打印为大写?

javascript - RegEx - 允许在固定长度字符串的开头和结尾处存在空格

java - Mockito ArgumentMatchers 不匹配吗?

java - Tomcat 连接器如何工作?

sql - regexp_matches() 返回 $ 的两个匹配项(字符串结尾)

c# - 正则表达式: Getting everything except certain matching strings

c - 以空格为分隔符的字符串三角形C语言

java - 检查字符串是否只包含某些字符

Python - 正则表达式,删除两个分隔符之间的内容