如何在JAVA中找到字符串中遇到的分隔符

时间:2015-03-01 05:07:44

标签: java string

我用Java编写了一个简单的程序来处理给定的字符串。

输入字符串有一些非字母表的分隔符。我使用String Tokenizer来读取和操作字符串中的单个单词。

现在我需要用同一组分隔符重建这个被操纵的字符串。感谢是否有人可以建议我如何识别分隔符。

换句话说,这就是输入:

  

Text1 Delimiter1 Text2 Delimiter2 Text3 Delimiter3 Text4 Delimiter4

这就是我的代码所做的:

  

NewText1 NewText2 NewText3 NewText4

我使用字符串标记生成器以这种方式识别下一个标记:

StringTokenizer st = new StringTokenizer(str, ", 0123456789(*&^%$#@!-_)");

但现在我想确定遇到的分隔符,以便我可以构建我的新字符串。

这就是我真正想要的:

  

NewText1 Delimiter1 NewText2 Delimiter2 NewText3 Delimiter3 NewText4 Delmiter4

1 个答案:

答案 0 :(得分:0)

您可以按照以下步骤继续:

String dels = "-, 0123456789(*&^%$#@!_)";
String specs = "[" + dels + "]+";
String letts = "[^" + dels + "]+";
String text = "one, two - three! four";
String[] words = text.split( specs );
String[] delim = text.split( letts );

请注意,在dels中,连字符必须在前面。如果您添加[]^,则必须更加小心 - 请检查java.util.regex.Pattern中的javadoc。

组成原始字符串没有特别的问题。

StringTokenizer带有第三个参数的缺点是它将每个分隔符作为长度为1的单独标记返回。