比较忽略主角

时间:2011-04-13 17:06:40

标签: java string-comparison

我收到“0000A”,“00000000A”,“0A”形式的字符串。它们可以有很多或没有前导零。我希望他们评价为无效,忽略前导零。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

要扩展@matt b的建议,你可以

if(text1.replaceAll("^0+","").equals(text2.replaceAll("^0+",""))

答案 1 :(得分:1)

  1. 删除任何前导零
  2. 测试剩余字符串的相等性

答案 2 :(得分:0)

要避免使用正则表达式引擎进行缓冲区复制,可以使用regionMatches检查一个字符串是否是另一个字符串的后缀,然后检查更长的前缀是否全为零。

if (a.regionMatches(
    Math.max(0, a.length() - b.length()),
    b, Math.max(0, b.length() - a.length()),
    Math.min(a.length(), b.length())) {
  // Check whether the prefix that is not common to both is all zeroes.
}