使用制表符分隔线的问题

problems with splitting line using tab delimiter

我正在以下列形式从文件中读取输入:

a b c d e 

其中每个字母代表一个字符串并由 tab 字符分隔。我正在使用 bufferedreader 读取该行并使用以下方式拆分它:

String[] splitString= currentLine.split("\t");

其中 currentLine 是一个字符串,其中包含 bufferedreader 读取的行。

但是,在某些情况下,输入中 b 可能为空或 e 可能为空(请参阅上面的示例输入)。

我希望能够对每个实例执行不同的操作,如下所示:

if (b is blank){
do this
}else if (e is blank) {
do this
}else{
do this
}

但是我想不出一个合适的 if 条件来准确实现这个功能

欢迎提出任何建议

编辑:

这是输入的正常形式,前提是没有任何内容 "blank"

a[tab]b[tab]c[tab]d[tab]e

假设原本应该位于 b 位置的内容现在是空白的,输入将如下所示:

a[tab][tab]c[tab]d[tab]e

你可以试试 :

String[] splitString = currentLine.split("\s");

正则表达式 \s 匹配单个空白字符。

一个空白字符由[ \t\n\x0B\f\r].

组成

根据选项卡拆分(使用 \t - 意味着仅要拆分的选项卡)。空字符串表示您有两个连续的标签。

string.split("\t");

示例:

String str = "hello[tab]hi[tab]how are you?"
String[] arr = str.split("\t");

将生成大小为 3 的数组,其中包含以下元素:hello, hi, how are you?

但是,对于 String str = "hello[tab][tab]hi[tab][tab][tab]how are you?",结果将是一个大小为 6 且元素为 hello, , hi, , , how are you?"

的数组

只需检查您的位置 "empty strings",他们会告诉您缺少的位置。