我正在读取以下格式的文件输入:
a b c d e
其中字母表各自代表一个字符串,并由tab
字符分隔。我正在使用缓冲读取器读取该行并使用以下命令将其拆分:
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条件
欢迎任何建议
编辑:
这是输入的正常形式,只要没有“空白”
a[tab]b[tab]c[tab]d[tab]e
让我们说,b
位置的任何内容现在都是空白的,输入看起来像这样:
a[tab][tab]c[tab]d[tab]e
答案 0 :(得分:1)
您可以尝试:
String[] splitString = currentLine.split("\\s");
正则表达式\\s
匹配单个空白字符。
空白字符由[ \t\n\x0B\f\r]
组成。
答案 1 :(得分:1)
根据标签进行拆分(使用\\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?"
只需检查“空字符串”的位置,他们就会告诉你哪些地方缺少。