我对此进行了一些搜索,我发现它BigDecimal
有一个我们可以传递String
给它的构造函数,它会为我们转换它。但就我而言,我所拥有的是一个java.lang.CharSequence
,我需要的是BigDecimal
进行这种转换的正确方法是什么?
我对此进行了一些搜索,我发现它BigDecimal
有一个我们可以传递String
给它的构造函数,它会为我们转换它。但就我而言,我所拥有的是一个java.lang.CharSequence
,我需要的是BigDecimal
进行这种转换的正确方法是什么?
new BigDecimal(myCharSeq.toString())
使用 CharSequence 接口的 .toString 方法
我已经纠正了我自己实际上CharSequence
是一个接口,它有自己的 toString() 方法。
toString(); -- 返回对象的字符串表示形式。
参考 CharSequnce 接口的官方文档http://docs.oracle.com/javase/6/docs/api/java/lang/CharSequence.html
BigDecimal bigDecimal = new BigDecimal(charSeq.toString());
我会CharSequence.toString
与您提到的构造函数一起使用。toString
文档:
以与此序列相同的顺序返回包含此序列中字符的字符串。字符串的长度就是这个序列的长度。
这变成:
new BigDecimal(mySequence.toString());
呼吁toString()
并CharSequence
建立BigDecimal
它。Javadoc 是您的朋友。
像这样
StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
BigDecimal bigDecimal = new BigDecimal(sb.toString());
这可以保护您,以防 toString() 的 charSequence 具体类实现出现问题。CharSequence 是一个可以由用户编写的具体类支持的接口。