Java中BigDecimal和String之前的转换代码示例

x33g5p2x  于2022-02-15 转载在 Java  
字(2.8k)|赞(0)|评价(0)|浏览(254)

在本教程中,我们将学习如何转换BigDecimal和String,同时我们将把String转换为BigDecimal。
BigDecimal类提供了算术、比例操作、四舍五入、比较、散列和格式转换等操作。toString()方法提供了一个BigDecimal的典型表示。

在本教程中,我们创建了带有两个通用方法的StringConverter<>通用接口。这个接口可以用来将任何封装类(Integer, Short, Double等)转换为String,反之亦然。
例如--在本教程中,我们要转换BigDecimal和String,所以我们将创建BigDecimalStringConverter类,实现StringConverter<>接口方法,同样,如果你想将Double转换为String,那么创建DoubleStringConverter类并实现StringConverter<>接口方法。

创建一个StringConverter通用接口

在这里,我们创建一个通用的StringConverter<>接口。这个接口声明了以下的通用方法。 

toString(T object) - 将提供的对象转换为其字符串形式。 

T fromString(String string)- 将提供的字符串转换为由特定转换器定义的对象。

package net.javaguides.string.conversion;

/**
* Converter defines conversion behavior between strings and objects.
* The type of objects and formats of strings are defined by the subclasses
* of Converter.
*/
public interface StringConverter<T> {
    /**
* Converts the object provided into its string form.
* @return a string representation of the object passed in.
*/
    public abstract String toString(T object);

    /**
* Converts the string provided into an object defined by the specific converter.
* @return an object representation of the string passed in.
*/
    public abstract T fromString(String string);
}

BigDecimalStringConverter.java

让我们创建一个BigDecimalStringConverter类,将BigDecimal和String以及String转换为BigDecimal回来。

package net.javaguides.string.conversion;

import java.math.BigDecimal;

/**
* Conversion between BigDecimal and String in Java
* @author Ramesh Fadatare
*
*/
public class BigDecimalStringConverter implements StringConverter<BigDecimal> {

      @Override
      public BigDecimal fromString(String value) {
          // If the specified value is null or zero-length, return null
          if (value == null) {
               return null;
          } 

          value = value.trim();

          if (value.length() < 1) {
              return null;
          }

          return new BigDecimal(value);
     }

     @Override
     public String toString(BigDecimal value) {
           // If the specified value is null, return a zero-length String
           if (value == null) {
               return "";
           }

           return ((BigDecimal) value).toString();
     }
 
     public static void main(String[] args) {
  
           String str = "10.10";
          BigDecimalStringConverter bigDecimalStringConverter = new BigDecimalStringConverter();
          BigDecimal decimal = bigDecimalStringConverter.fromString(str);
          System.out.println("convert string to decimal number -> " + decimal);
  
          String decimalStr = bigDecimalStringConverter.toString(decimal);
          System.out.println("convert decimal number to string -> " + decimalStr);  
     }
}

输出。

convert string to decimal number -> 10.10
convert decimal number to string -> 10.10

在上面这个例子中,我们用以下方法将String转换为BigDecimal。

@Override
public BigDecimal fromString(String value) {
     // If the specified value is null or zero-length, return null
      if (value == null) {
            return null;
      }

      value = value.trim();

      if (value.length() < 1) {
          return null;
     }

     return new BigDecimal(value);
}

在上面这个例子中,我们用下面的方法将BigDecimal转换为String。

@Override
public String toString(BigDecimal value) {
     // If the specified value is null, return a zero-length String
     if (value == null) {
           return "";
     }

     return ((BigDecimal) value).toString();
}

相关文章

微信公众号

最新文章

更多