6.2.1、数值和字符串之间的转换

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
数值和字符串之间的转换
将字符串转换成数值

通常,程序以字符串对象中的数字数据结束——例如,用户输入的值。

包装数值的Number类的子类,每一个都提供了一个方法valueOf() 来将字符串转换为对象类型。

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
将数值转换成字符串

有时需要将数值转换成字符串,因为你需要在字符串形式的数值上做操作。这里有些简单的方式用来讲数值转换成字符串:

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); 

下面的示例采用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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值