【问题标题】:how do i search an arraylist for a specific format of a string in Java?如何在数组列表中搜索 Java 中特定格式的字符串?
【发布时间】:2015-08-24 13:13:22
【问题描述】:

我正在尝试搜索一个数组列表,而不是一个值,而是一个格式。我正在导入格式不一致的文本文件。我已成功将信息导入2D arraylist。有没有办法清除字符串格式的信息?

导入信息示例:

14  03-324-27216|14     "1 = 14' 0"" X 3.500""" 14.000  49      3.500   MF AU 210 AS M  0   05-01-15    

14  03-362-50502|14 24543   "1 = 21' 6"" X 3.625""" 21.000  77      3.625   BF GP 212           
            Location REM                                
            V:24543 

导入文件的每一行可能包含多个维度和多行。我想在格式时开始一个新的Arraylist

##-###-#####|## 

出现,并在任何时候添加一个元素

"# = ##' #"" x #.###""" 

出现。

【问题讨论】:

  • Regex模式匹配,循环遍历数组。
  • 您可以将该输入与\d\d-\d{3}-\d{5}\|\d\d 匹配。如需更具体的帮助,请展示您用于解析文件的代码并提出具体问题(包括错误消息以及结果与您的预期有何不同)。

标签: java multidimensional-array arraylist string.format


【解决方案1】:

从您发布的两行看来,这是一个以空格分隔的 CSV 文件。缺点是一些“空”元素被写成空格。

如果您用逗号替换空格(除非它们的两边都有空格),您会得到一个格式正确的 CSV 文件。

03-324-27216|14, , ,"1,=,14',0"",X,3.500""",14.000,,49, ,, ,3.500, ,MF,AU,210,AS,M,,0, ,05-01-15, ,,
03-362-50502|14,24543, ,"1,=,21',6"",X,3.625""",21.000,,77, ,, ,3.625, ,BF,GP,212, ,, ,, , ,

构建一个自定义 CSV 解析器来处理奇怪的 3 个连续空格可能会更容易。

【讨论】:

  • 我也可以循环遍历数组并搜索字符串是否包含“|”特殊字符开始一个数组列表和“'”特殊字符添加到它?我认为卷号“##-###-#####|##”是唯一带有“|”字符的字符串,每个尺寸线是唯一带有“'”字符的字符串。实际上,我认为我会遍历每个元素,并有类似“包含”之类的布尔结果来操作吗?
猜你喜欢
  • 2020-09-29
  • 1970-01-01
  • 2014-05-27
  • 1970-01-01
  • 2011-11-17
  • 2019-07-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
相关资源
最近更新 更多