首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除字符串值中的尾随零和删除小数点

问如何删除字符串值中的尾随零和删除小数点
EN

Stack Overflow用户
提问于 2014-08-28 13:57:40
回答 3查看 22.7K关注 0票数 12

如果字符串的小数点后仅包含零,如何删除字符串值中的尾随零和小数点?我使用了下面的代码:

代码语言:javascript
复制
String string1 = Double.valueOf(a).toString()

这将删除(10.10和10.2270)中的尾随零,但我没有得到第一个和第二个输入的预期结果。

输入

代码语言:javascript
复制
10.0
10.00
10.10
10.2270

预期输出

代码语言:javascript
复制
10
10
10.1
10.227
EN

回答 3

Stack Overflow用户

发布于 2014-08-28 14:21:51

Java库有一个内置的类,可以为它做这件事。我是BigDecimal。

下面是一个用法示例:

代码语言:javascript
复制
BigDecimal number = new BigDecimal("10.2270");  
System.out.println(number.stripTrailingZeros().toPlainString());

输出:

代码语言:javascript
复制
10.227

注意:使用接受String的BigDecimal构造函数很重要。你可能不想要带double的那个。

下面是一个方法,它将接受一个Collection<String>,并返回另一个去掉尾随零的数字Collection<String>。

代码语言:javascript
复制
public static Collection<String> stripZeros(Collection<String> numbers) {
    if (numbers == null) { 
        throw new NullPointerException("numbers is null");
    }

    ArrayList<String> value = new ArrayList<>(); 

    for (String number : numbers) { 
        value.add(new BigDecimal(number).stripTrailingZeros().toPlainString());
    }

    return Collections.unmodifiableList(value);
}

示例用法:

代码语言:javascript
复制
ArrayList<String> input = new ArrayList<String>() {{ 
    add("10.0"); add("10.00"); add("10.10"); add("10.2270"); 
}};

Collection<String> output = stripZeros(input);
System.out.println(output);

输出:

代码语言:javascript
复制
[10, 10, 10.1, 10.227]
票数 15
EN

Stack Overflow用户

发布于 2014-08-28 14:03:22

试一试

代码语言:javascript
复制
DecimalFormat decimalFormat = new DecimalFormat("#.##");
String string1 = decimalFormat.format(10.000);
票数 -1
EN

Stack Overflow用户

发布于 2014-08-28 14:13:06

尝试如下所示的正则表达式:

代码语言:javascript
复制
public static void main(String[] args) {
    String s = "10.0";
    System.out.println(s.replaceAll("[0]+$", "").replaceAll("(\\.)(?!.*?[1-9]+)", ""));

}

O/P:
10

input :String s = "10.0750";
O/P : 10.075

input : String s = "10.2750";
O/P : 10.275
票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25541684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档