在数字和字符串之间转换
原文: https://docs.oracle.com/javase/tutorial/java/data/converting.html
将字符串转换为数字
通常,程序以字符串对象中的数字数据结束 - 例如,用户输入的值。
包含原始数字类型的Number子类( Byte , Integer , Double , Float , Long 和 Short )各自提供一个名为valueOf的类方法,它将字符串转换为该类型的对象。下面是一个示例, ValueOfDemo ,从命令行获取两个字符串,将它们转换为数字,并对值执行算术运算:
public class ValueOfDemo {public static void main(String[] args) {// this program requires two// arguments on the command lineif (args.length == 2) {// convert strings to numbersfloat a = (Float.valueOf(args[0])).floatValue();float b = (Float.valueOf(args[1])).floatValue();// do some arithmeticSystem.out.println("a + b = " +(a + b));System.out.println("a - b = " +(a - b));System.out.println("a * b = " +(a * b));System.out.println("a / b = " +(a / b));System.out.println("a % b = " +(a % b));} else {System.out.println("This program " +"requires two command-line arguments.");}}}
当您使用4.5和87.2作为命令行参数时,以下是程序的输出:
a + b = 91.7a - b = -82.7a * b = 392.4a / b = 0.0516055a % b = 4.5
Note: Each of the Number subclasses that wrap primitive numeric types also provides a parseXXXX() method (for example, parseFloat()) that can be used to convert strings to primitive numbers. Since a primitive type is returned instead of an object, the parseFloat() method is more direct than the valueOf() method. For example, in the ValueOfDemo program, we could use:
float a = Float.parseFloat(args[0]);float b = Float.parseFloat(args[1]);
将数字转换为字符串
有时您需要将数字转换为字符串,因为您需要对其字符串形式的值进行操作。有几种简单的方法可以将数字转换为字符串:
int i;// Concatenate "i" with an empty string; conversion is handled for you.String s1 = "" + i;
要么
// The valueOf class method.String s2 = String.valueOf(i);
每个Number子类都包含一个类方法toString(),它将原始类型转换为字符串。例如:
int i;double d;String s3 = Integer.toString(i);String s4 = Double.toString(d);
ToStringDemo 示例使用toString方法将数字转换为字符串。然后程序使用一些字符串方法来计算小数点前后的位数:
public class ToStringDemo {public static void main(String[] args) {double d = 858.48;String s = Double.toString(d);int dot = s.indexOf('.');System.out.println(dot + " digits " +"before decimal point.");System.out.println( (s.length() - dot - 1) +" digits after decimal point.");}}
该程序的输出是:
3 digits before decimal point.2 digits after decimal point.
