[英]Split String By Character
我有一个案例,我正在做以下事情:
final String[] columns = row.split(delimiter.toString());
delimiter
是字符的位置。
当我需要通过提供\\t
作为分隔符来基于选项卡进行拆分时,这可以正常工作。 但是,当我想拆分管道时,我传入了|
的分隔符 这不能按预期工作。
我读了几篇关于如何|
帖子 是一个特殊的字符,意味着null或空,因此它会分裂它遇到的每个字符,但是,我不想要这种行为。
我可以在我的代码中对此管道案例进行简单检查并解决问题:
if ("|".equals(delimiter.toString())) {
columns = row.split("\\" + delimiter.toString());
}
else {
columns = row.split(delimiter.toString());
}
但我不知道是否有更简单的方法来解决这个问题。 此外,是否有任何其他特殊字符的行为像|
这是我需要考虑的吗?
尝试:
import java.util.regex.Pattern;
...
final String[] columns = row.split(Pattern.quote(delimiter.toString()));
关于其他元字符 ,当它们被调用时,这里是String Literals教程的引用:
此API还支持许多影响模式匹配方式的特殊字符。
...
此API支持的元字符为:<([{\\ ^ - = $!|]})?* +。>
看到:
您可以使用Apache Commons Lang中的StringUtils
,它配备了接受纯文本而非正则表达式的方法:
public static String[] split(String str, char separatorChar) public static String[] split(String str, String separatorChars)
您还可以使用StringTokenzier
类,它不期望正则表达式作为分隔符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.