2014-06-30 29 views
0

我正在逐行讀取製表符分隔的文本文件,這非常混亂,並試圖從中獲取唯一的列名稱。除去文本行中的選項卡以外的空間

問題是它包含作爲字段分隔符的選項卡,但某些列名稱的名稱中有空格!我正在使用

String[] cols = line.split("\\t"); 

這看起來不能正常工作,因爲在某些情況下它將空格當作分隔符!使用正則表達式是一個很好的解決方案?如果是的話,你可以建議什麼正則表達式從字符串中刪除空格,但保持標籤?

數據是這樣的:在一個字符串

Sever ID Name 
12221  zxsz 
+0

您必須發佈數據樣本。沒有這一點,我們真的不能幫助。 –

+2

你的方法沒問題。您可以嘗試'line.replaceAll(「\\ t」,「|」)'並打印行以查看列名是否使用製表符分隔空格來分隔。 –

回答

1

標籤只不過是 「\ t」 的。 「\\ t」是一個字面反斜槓,後跟一個「t」。話雖如此,這兩種方法對我的作品:

public class Scratch2 { 
    public static void main(String[] args) { 
     String welk = "anna one\tanna two\tanna three"; 
     System.out.println("\\t"); 
     String[] annas = welk.split("\t"); 
     for (String anna : annas) { 
      System.out.println(anna); 
     } 
     System.out.println("\\\\t"); 
     annas = welk.split("\\t"); 
     for (String anna : annas) { 
      System.out.println(anna); 
     } 
    } 
} 

輸出:

\t 
anna one 
anna two 
anna three 
\\t 
anna one 
anna two 
anna three 

最簡單的解釋是,你輸入的字符串不包含你認爲他們做的空白字符。

相關問題