Сравнение, игнорирующее ведущих персонажей - PullRequest
0 голосов
/ 13 апреля 2011

Я получаю строки вида «0000A», «00000000A», «0A». У них может быть много или нет ведущих нулей. Я хочу, чтобы они оценивались как равные, игнорируя ведущие нули. Каков наилучший способ сделать это?

Ответы [ 3 ]

2 голосов
/ 13 апреля 2011

Чтобы расширить предложение @matt b, вы можете сделать

if(text1.replaceAll("^0+","").equals(text2.replaceAll("^0+",""))
1 голос
/ 13 апреля 2011
  1. удалить все ведущие нули
  2. проверить равенство оставшихся строк
0 голосов
/ 13 апреля 2011

Чтобы избежать копирования буфера с помощью механизма регулярных выражений, вы можете проверить, является ли одна строка суффиксом другой, используя 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.
}
...