Java官方文档说明:
例如,字符串“boo:and:foo”
使用以下表达式Regex Result生成以下结果:
{ "boo", "and", "foo" }"
这就是我需要它工作的方式。然而,如果我运行这个:
public static void main(String[] args){
String test = "A|B|C||D";
String[] result = test.split("|");
for(String s : result){
System.out.println(">"+s+"<");
}
}
它打印:
><
>A<
>|<
>B<
>|<
>C<
>|<
>|<
>D<
这与我的预期相去甚远:
>A<
>B<
>C<
><
>D<
为什么会这样?
使用以下代码:
public static void main(String[] args) {
String test = "A|B|C||D";
String[] result = test.split("\\|");
for (String s : result) {
System.out.println(">" + s + "<");
}
}
使用正确的转义:string。拆分(“\\\\”)
或者,在Java5中,使用助手Pattern.quote()
,它正是为此目的而创建的:
string.split(Pattern.quote("|"))
它适用于任意输入字符串。当您需要引用/转义用户输入时非常有用。
你需要
test.split("\\|");
拆分
使用正则表达式,在regex中|
是表示OR
运算符的元字符。您需要使用\
转义该字符(在String中写成"\\"
,因为\
也是String中的元字符,并且需要另一个\
来转义它)。
你也可以使用
test.split(Pattern.quote("|"));
然后让模式。quote
创建表示|
的正则表达式的转义版本。
问题内容: 我无法从此字符串拆分值: 这是我当前的代码: | 输出量 预期产量 问题答案: 是正则表达式中的元字符。你需要对其进行转义:
问题内容: Java官方文档指出: 它打印: 这与我的预期相去甚远: 为什么会这样呢? 问题答案: 你需要 使用正则表达式,并且在中 |是表示OR运算符的元字符。你需要使用来转义该字符\(使用String编写,因为它也是String文字中的元字符,并且需要另一个字符来对其进行转义)。 你也可以使用 并创建代表的正则表达式的转义版本|。
问题 你想拆分一个字符串。 解决方案 使用 JavaScript 字符串的 split() 方法: "foo bar baz".split " " # => [ 'foo', 'bar', 'baz' ] 讨论 String 的这个 split() 方法是标准的 JavaScript 方法。可以用来基于任何分隔符——包括正则表达式来拆分字符串。这个方法还可以接受第二个参数,用于指定返回的子字符串数
问题内容: 使用功能split拆分此String。这是我的代码: 当我尝试这样做时,spli只包含一个字符串。似乎Java在拆分时看不到“ ^”。有人知道如何用字母“ ^”分割此字符串吗? 编辑 解决了:P 问题答案: 这是因为需要一个正则表达式,而不是文字字符串。您必须转义,因为它在regex(字符串开头的锚点)中具有不同的含义。因此,拆分实际上是在第一个字符之前完成的,从而使您完整地返回了完整
问题内容: 我正在尝试执行类似以下的拆分: 输出: 我要执行此拆分: 但我看到: 有什么办法可以摆脱括号吗?任何帮助表示赞赏。 问题答案:
如何将过滤器列表拆分为单个过滤器元件?split2String在线程“main”java.util.regex中导致:异常。PatternSyntaxException:索引10或(|和)附近的未闭合组(