Я хочу обрезать эту строку.Удалить ведущие нули из числа в строке
"0000819780"
Как я могу получить только "819780" часть.
Я могу сделать это с моей стороны, просто любопытно, есть ли какой-либо «элегантный» или «правильный» способ сделать это.
Я хочу обрезать эту строку.Удалить ведущие нули из числа в строке
"0000819780"
Как я могу получить только "819780" часть.
Я могу сделать это с моей стороны, просто любопытно, есть ли какой-либо «элегантный» или «правильный» способ сделать это.
Я надеюсь, что это работает:
try {
int i=Integer.parseInt(yourString)
System.out.println(i);
}catch(Exception e)
{//String has something more than number
}
И затем int, если вам нужно. –
Thnks god it works –
while(str.length() >= 1 && str.charAt(0) == '0')
str = str.substring(1);
К сожалению, вы помните * неправильно *. Он удаляет пробелы только в начале и в конце строки. –
Хорошо, спасибо за это. Простой цикл while должен делать трюк. – Danny0317
Альтернатива:
Использование Apache Commons StringUtils класс:
StringUtils.stripStart(String str, String stripChars);
Для примера:
StringUtils.stripStart("0000819780", "0"); //should return "819780"
Если вход всегда является числом, и вы хотите удалить только начальные нули, просто проанализируйте его в целое число. Если вы хотите его в строчном формате, проанализируйте его.
String a = "0000819780";
System.out.println(Long.parseLong(a));
Проверьте https://ideone.com/7NMxbE за текущий код.
Если она может иметь отличные от чисел значения, вам нужно будет поймать NumberFormatException
спасибо, что он работает –
Возможно, используйте 'Long'. Не все десятизначные целые числа вписываются в 'Integer'. – Thilo
@ Тило, спасибо, что указали это. Я обновил ответ. –
Есть много способов, вы можете удалить ведущие нули из вашего String
; один подход, итерирует String
слева направо останавливая на рядом с последним символом (так что вы не стираете последнюю цифру) остановкой, если вы столкнулись с ненулевым и вызывать String.substring(int)
как
String str = "0000819780";
for (int i = 0, length = str.length() - 1; i < length; i++) {
if (str.charAt(i) != '0') {
str = str.substring(i);
break;
}
}
System.out.println(str);
В качестве альтернативы, разбора String
как
int v = Integer.parseInt(str);
System.out.println(v);
Double а = Double.parseDouble ("00346632");
Строка xyz = String.format ("%. 0f", abc);
Каков ваш путь? – Jason
Что вы хотите сделать с частью '819780'? –
Каков ваш путь для «0000000»? Пустая строка или «0»? – Thilo