【问题标题】:Adding +1 to the end of a String在字符串末尾添加 +1
【发布时间】:2016-12-15 13:52:38
【问题描述】:

早上好,

我有一个字符串 = "1481807989.1524"

我需要给这个字符串加+1

示例 1:

字符串 = "1481807989.1524"

新字符串 = "1481807989.1525"

示例 2:

字符串 = "1481807989.1999"

新字符串 = "1481807989.2000"

我试图这样做,但它没有回答:

String str;

Str = str.charAt (str.length () - 1);

【问题讨论】:

标签: java


【解决方案1】:

将值作为一个整体进行解析,然后添加所需的值。

new BigDecimal(/* your string */).add(BigDecimal.ONE)

或者如果我正确阅读了您的代码,您总是想添加new BigDecimal("0.001")

编辑:如果您真的只想更改最后一位,请使用以下内容:

public BigDecimal incrementLastDigit(String value) {
    BigDecimal decimal = new BigDecimal(value);
    return new BigDecimal(decimal.unscaledValue().add(BigInteger.ONE), decimal.scale());
}

样品:

incrementLastDigit("1234.1234"); // gets you 1234.1235
incrementLastDigit("1234.1"); // gets you 1234.2
incrementLastDigit("9999999999999999999999999999999999.99999999999999999999999999999"); 
// gets you 10000000000000000000000000000000000.00000000000000000000000000000

【讨论】:

  • 字符串可以是123123.1、'123.123, '8999999999999999999999999999.999999999999999999999999。无论如何,硬编码的0.001 看起来不太好。
  • 同意。这应该朝着正确的方向发展。我看到的模式是添加了0.0001 ;-) 关于输入字符串。不要忘记,“废话”也是一个有效的输入字符串;-) 没有要求进行完整性检查;-)
  • 我做了这个函数,但看看结果: VAR: 1481811454.1579 VAR NEW: 1481811455.1579 他必须在 1579 年改变。
猜你喜欢
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多