gro*_*190 10 java regex string split
在我的Java应用程序中,我需要在两种情况下使用相同的 "目标" 找到索引和拆分字符串.目标只是一个点.
查找索引(通过indexOf和lastIndexOf)不使用正则表达式,所以
String target = ".";
String someString = "123.456";
int index = someString.indexOf(target); // index == 3
Run Code Online (Sandbox Code Playgroud)
给了我需要的索引.
但是,我也想用这个"目标"来分割一些字符串.但现在目标字符串被解释为正则表达式字符串.所以当我想拆分字符串时,我不能像以前一样使用相同的目标字符串...
String target = ".";
String someString = "123.456";
String[] someStringSplit = someString.split(target); // someStringSplit is an empty array
Run Code Online (Sandbox Code Playgroud)
所以我需要以下任何一种:
有人可以帮忙吗?您是否同意标准java平台使用正则表达式进行"拆分"而不使用正则表达式"indexOf"似乎有点奇怪?
Tim*_*ton 21
您需要逃避"目标"才能将其用作正则表达式.尝试
String[] someStringSplit = someString.split(Pattern.quote(target));
Run Code Online (Sandbox Code Playgroud)
如果有帮助,请告诉我.
String::split
如果正则表达式是:则不使用正则表达式进行拆分:
.$|()[{^?*+\\
String::split()
详细信息请参见源代码。
对于转义的“.” 目标它将在没有正则表达式的情况下被分割。