Java字符串拆分任何字符(包括正则表达式特殊字符)

Tre*_*bla 1 java string

我敢肯定我只是在这里俯瞰一些东西......

有没有一种简单的方法可以在显式字符上拆分字符串而不应用RegEx规则?

例如,我收到一个带有动态分隔符的字符串,我知道第5个字符定义了分隔符.

String s = "This,is,a,sample";
Run Code Online (Sandbox Code Playgroud)

为此,它很简单

String delimiter = String.valueOf(s.charAt(4));
String[] result = s.split(delimiter);
Run Code Online (Sandbox Code Playgroud)

但是,当我有一个特殊的RegEx字符的分隔符时,这不起作用:

String s = "This*is*a*sample";
Run Code Online (Sandbox Code Playgroud)

那么......有没有办法在显式字符上拆分字符串而不尝试应用额外的RegEx规则?我觉得我必须错过一些非常简单的东西.

Rei*_*eus 8

split使用正则表达式作为其参数.*是一个元字符,用于匹配正则表达式中的多个字符,您可以使用它Pattern#quote来避免解释字符

String[] result = s.split(Pattern.quote(delimiter));
Run Code Online (Sandbox Code Playgroud)