Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
通常,程序以字符串对象中的数字数据结束(或者译为程序终端通常处理字符串表示的数字?),例如,用户输入的值。
包含基本数字类型的 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 line if (args.length == 2) { // convert strings to numbers float a = (Float.valueOf(args[0])).floatValue(); float b = (Float.valueOf(args[1])).floatValue(); // do some arithmetic 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)); 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.7 a - b = -82.7 a * b = 392.4 a / b = 0.0516055 a % b = 4.5
Number
子类还提供 parseXXXX()
方法(例如,parseFloat()
)可用于将字符串转换为基本数字。由于返回基本类型而不是对象,因此 parseFloat()
方法比 valueOf()
方法更直接。例如,在 ValueOfDemo
程序中,我们可以使用:
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.