【发布时间】:2018-08-09 03:51:28
【问题描述】:
我有一个号码,chNumber 如下所示
“1499094567”
它们是 10 万个,例如 110000,json 字符串,他们是否有最有效的方法来检查这个数字是否完全完整,呈现这 110000 个 json 字符串?
我尝试使用 Java String contains 方法,它运行良好,但严重的问题是,例如,如果一个 JSON 字符串包含数字“8981499094567123”,如果你看到这个数字有上面的数字那么 contains 方法正在返回 true ,但它不应该返回,我们想要返回 JSON,其中包含整个目标数字,并且完整,
我尝试使用 jackson lib,但使用 String 包含我使用的工作最多需要 15 到 20 分钟,但使用 Jackson 需要花费超过 1 小时,所以任何人都可以建议如何进行此搜索。
注意:我有近 500 到 600 个目标数字,每次搜索 110000 个 JSON 字符串
我也用过正则表达式,也太费时间了
【问题讨论】:
-
如果你知道 JSON 的格式,也许你可以尝试做一些正则表达式(虽然正则表达式也可能需要很长时间)。您也可以尝试搜索
: 1499094567,而不是1499094567,注意额外的冒号和后面的逗号,假设它是一个值 -
我尝试了正则表达式和 java mattern 补丁,仍然需要很长时间
-
是的...正则表达式需要很长时间。试试我上面提到的第二种方法。
-
数字在 json 中用双引号括起来,所以 1499094567,它不起作用,因为在逗号之前我们需要一个双引号,例如“chNumber”:“1499094567”,这是格式,在这种情况下,“1499094567\”,这可以搜索还是我需要框架的其他字符串?
-
你应该可以搜索到
\"1499094567\"对吧?或者更好的是,搜索\"chNumber\": \"1499094567\"的整个字符串。目标字符串越长,使用 Boyer–Moore 字符串搜索算法的搜索速度就越快。