我用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
答案 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的单独标记返回。