Java 忽略主角的比较

Java 忽略主角的比较,java,string-comparison,Java,String Comparison,我收到形式为“0000A”、“00000000A”、“0A”的字符串。它们可以有许多前导零,也可以没有前导零。我希望它们计算为相等,忽略前导零。最好的方法是什么 删除任何前导零 测试其余字符串的相等性 删除任何前导零 测试其余字符串的相等性 要扩展@matt b的建议,您可以 if(text1.replaceAll("^0+","").equals(text2.replaceAll("^0+","")) 要扩展@matt b的建议,您可以 if(text1.replaceAll("^0+","

我收到形式为“0000A”、“00000000A”、“0A”的字符串。它们可以有许多前导零,也可以没有前导零。我希望它们计算为相等,忽略前导零。最好的方法是什么

  • 删除任何前导零
  • 测试其余字符串的相等性
  • 删除任何前导零
  • 测试其余字符串的相等性

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

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

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

    if(text1.replaceAll("^0+","").equals(text2.replaceAll("^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.
    }
    

    为了避免正则表达式引擎复制缓冲区,可以使用
    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.
    }