Удалите начальные нули с помощью регулярных выражений, но оставьте знак минус - PullRequest
3 голосов
/ 26 октября 2011

Я хочу заменить ведущие нули в Java на это выражение, найденное в этой теме :

s.replaceFirst("^0+(?!$)", "")

Но как я могу заставить его работать для таких значений, как -00.8899?

Ответы [ 2 ]

6 голосов
/ 26 октября 2011

Вы можете попробовать:

String output = "-00.8899".replace("^(-?)0*", "$1");

Выход:

-.8899
5 голосов
/ 26 октября 2011

Почему вы имеете дело с числовым значением в строковой переменной?

Поскольку Java является языком со строгой типизацией, вам, вероятно, будет проще преобразовать его в число с плавающей запятой или в двойное число, а затем выполнять всю работулогика, затем, наконец, форматирование вывода.

Что-то вроде:

Double d = Double.parseDouble(s);
double val = d; //mind the auto-boxing/unboxing

//business logic   

//get ready to display to the user
DecimalFormat df = new DecimalFormat("#.0000");
String s = df.format(d);

http://download.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...