比较忽略主角

发布于 2024-10-31 22:12:07 字数 87 浏览 1 评论 0原文

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

I receive strings of the form "0000A", "00000000A", "0A". They can have many or no leading zeros. I want them to evaluate as equal ignoring the leading zeros. What is the best way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

只有一腔孤勇 2024-11-07 22:12:07

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

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

To expand on @matt b's suggestion, you can do

if(text1.replaceAll("^0+","").equals(text2.replaceAll("^0+",""))
羞稚 2024-11-07 22:12:07
  1. 删除任何前导零
  2. 测试剩余字符串的相等性
  1. remove any leading zeros
  2. test the equality of the remaining strings
苏别ゝ 2024-11-07 22:12:07

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

To avoid buffer copies by a regex engine, you can check whether one string is a suffix of the other using regionMatches and then check that the prefix of the longer is all zeroes.

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.
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文