我的批发商有一个非常长的价格文件,我有很多难以读入我的程序,因为每列都用x个空格分隔。像这样;
99995116273 34 mm asasa 00472,50100
99998375442 11 lalaaasdsddfgdfgdf 00503,00206
99998375443 1 1/4 Microkupling 00867,00206
如何使用Java中的Scanner类将每列分为部分号,描述和价格?
答案 0 :(得分:1)
使用split方法。此方法将正则表达式作为参数,因此这样的事情对您有用:
String line =....;
String[] colums = line.split("\\s{2,}");
每次找到两个或多个空格(空格将被丢弃)时,这将创建一个新字符串。结果将是一个包含您需要的单词的数组。
{2,}
意味着对于要断开的字符串,它需要有两个或更多空格。
答案 1 :(得分:0)
早上好,我不是一个java开发人员,但我没有考虑将值定界符作为空格,你是否尝试将其视为“标签”?我以前处理过tab demlimeted文件,这可能就是这种情况。
答案 2 :(得分:0)
假设每行有1个项目,您可以使用以下内容:
Scanner s = new Scanner(input).useDelimiter("\\n");
因此,s.next将检索包含项目的字符串,然后单独扫描每一行或简单地拆分它。
答案 3 :(得分:0)
查看粘贴的文本,原始文本似乎使用tab
字符来对齐列。如果您正在处理的文本具有选项卡且字段(项)本身不包含空格,那么您可以使用另外一个tab
字符作为分隔符。
如果制表符已经转换为空格并且结果是上面的输出,那么这就变成了一个更加困难的问题,只能通过启发式方法解决。
再看文本,fornat似乎是
如果您可以确认这是格式,那么解决方案实施起来并不复杂。
答案 4 :(得分:0)
为什么不从字符串的开头读取部件号,而不是拆分字符串,从结尾开始的价格和中间剩下的是描述。