我正在逐行阅读制表符分隔的文本文件,这非常混乱,并试图从中获取唯一的列名称。
问题在于它包含制表符作为字段分隔符,但是某些列名称的名称中有空格!我在用
String[] cols = line.split("\\t");
这似乎无法正常工作,因为在某些情况下它将空格作为分隔符!使用正则表达式是一个好的解决方案吗?如果是,您能建议什么正则表达式从字符串中删除空格但保留制表符吗?
数据就像:
Sever ID Name
12221 zxsz
最佳答案
字符串文字中的制表符只是“ \ 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
最简单的解释是您的输入字符串不包含您认为它们包含的空格字符。