簡體   English   中英

按字符拆分字符串

[英]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支持的元字符為:<([{\\ ^ - = $!|]})?* +。>

看到:

  1. 您可以使用Apache Commons Lang中的StringUtils ,它配備了接受純文本而非正則表達式的方法:

     public static String[] split(String str, char separatorChar) public static String[] split(String str, String separatorChars) 
  2. 您還可以使用StringTokenzier類,它不期望正則表達式作為分隔符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM