文档

Java™ 教程
隐藏目录
数字和字符串之间的转换
导航: 学习Java语言
课程: 数字和字符串
章节: 字符串

数字和字符串之间的转换

将字符串转换为数字

通常情况下,程序会得到一个字符串对象中的数字数据,比如用户输入的值。

包装原始数值类型的Number子类(ByteIntegerDoubleFloatLongShort)都提供了一个名为valueOf的类方法,用于将字符串转换为相应类型的对象。下面是一个示例:ValueOfDemo,从命令行获取两个字符串,将它们转换为数字,并对这些值进行算术运算:

public class ValueOfDemo {
    public static void main(String[] args) {

        // 程序需要在命令行上提供两个参数
        if (args.length == 2) {
            // 将字符串转换为数字
            float a = (Float.valueOf(args[0])).floatValue(); 
            float b = (Float.valueOf(args[1])).floatValue();

            // 进行一些算术运算
            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("该程序需要在命令行上提供两个参数。");
        }
    }
}

当使用命令行参数4.587.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;
// 将"i"与一个空字符串连接;转换将由系统自动处理。
String s1 = "" + i;

或者

// 使用valueOf类方法。
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.

上一页:字符串
下一页:操作字符串中的字符