Как насчет регулярного выражения:
String s = "001234-a";
s = s.replaceFirst ("^0*", "");
^
привязывает к началу строки (я предполагаю, что из контекста ваши строки здесь не многострочные, в противном случае вам может понадобиться заглянуть в \A
для начала ввода, а не начала строки) , 0*
означает ноль или более 0
символов (вы могли бы также использовать 0+
). replaceFirst
просто заменяет все эти 0
символы в начале ничем.
И если, как и Вадим, ваше определение ведущих нулей не включает превращение "0"
(или "000"
или подобных строк) в пустую строку (достаточно рациональное ожидание), просто при необходимости верните ее обратно: 1017 *
String s = "00000000";
s = s.replaceFirst ("^0*", "");
if (s.isEmpty()) s = "0";