BigDecimal与字符串相互转化
String a = "1.23";
BigDecimal b = new BigDecimal(a);
System.out.println(b);
BigDecimal c = new BigDecimal(4.56);
c=c.setScale(2, BigDecimal.ROUND_HALF_UP);// 四舍五入保留两位小数
String d = c.toString();
System.out.println(d);
BigDecimal e = new BigDecimal("7.89");
String f = e.toString();
System.out.println(f);
BigDecimal转换成String类型时,要注意,看Bigdecimal对象的生成方式,若是以new BIgDecimal(double)方式创建的,要考虑精度的问题,若直接调用toString方法,得到的值与double不一致。若是以new BIgDecimal(String)方式创建的,可不用转换,直接调用toString方法即可
数组与字符串相互转化
// 字符串转数据
String str1 = "0,1,2,3,4";
String[] arr1 = str1.split(","); // 用“,”分割
System.out.println(Arrays.toString(arr1));// 输出结果:[0,1,2,3,4]
// 数组转字符串
// 方法一
String[] arr = {"0", "1", "2", "3", "4"};
StringBuffer str2 = new StringBuffer();
for (String s : arr) {
str2.append(s);
}
System.out.println(str2.toString());// 输出结果:01234
// 方法二
String str3 = StringUtils.join(arr); // 数组转字符串,其实使用的也是遍历
System.out.println(str3); // 输出结果:01234
// 方法三
String str4 = StringUtils.join(arr, ","); // 逗号分隔输出(推荐)
System.out.println(str4); // 输出结果:0,1,2,3,4
一般推荐使用join方法实现转换,注意StringUtils的包是org.apache.commons.lang3.StringUtils;
数组与List相互转化
// 数组转list
String[] arr = {"hello","world"};
List<String> list = Arrays.asList(arr);
System.out.println(list);// 输出结果:[hello, world]
// list转数组
String[] str= list.toArray(new String[list.size()]);
for (String s : str) {
System.out.println(s);// 循环输出hello和world
}
使用Arrays.asList(T… a)时注意两点:
- 对于存储基本数据类型的数组,直接使用Arrays.asList(T… a)是编译不过的
- 使用Arrays.asList(T… a)得到的list是数组的一个视图,其长度是固定不变的,即可修改值,但不能执行add和remove操作,否则执行时会报java.lang.UnsupportedOperationException异常