在数字和字符串 之间转换
将字符串 转换为数字
通常,程序以字符串 对象中的数字数据结尾,例如,用户 Importing 的值。
package原始数字类型(Byte,Integer,Double,Float,Long和Short)的Number
子类各自提供一个名为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
Note:
package原始数字类型的每个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;
or
// 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.