使用制表符分隔线的问题
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",他们会告诉您缺少的位置。
我正在以下列形式从文件中读取输入:
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",他们会告诉您缺少的位置。