Java中字符串和基本类型怎么互相转换

来源:AI视频音频作者:石川澪头衔:网络博主
导读:本期聚焦于小伙伴创作的《Java中字符串和基本类型怎么互相转换》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Java中字符串和基本类型怎么互相转换》有用,将其分享出去将是对创作者最好的鼓励。

在Java开发过程中,字符串和基本类型的互相转换是几乎每个项目都会用到的操作,无论是处理前端传入的参数,还是读取配置文件中的数据,都需要掌握对应的转换方法。

Java中字符串和基本类型怎么互相转换

基本类型转字符串的方法

1. 使用String.valueOf()方法

这是最推荐的转换方式,该方法支持所有基本类型的重载,会返回对应的字符串表示,而且不会出现空指针异常。

public class BasicToString {
    public static void main(String[] args) {
        int num = 100;
        double price = 29.5;
        boolean flag = true;
        char ch = 'A';
        
        // 基本类型转字符串
        String numStr = String.valueOf(num);
        String priceStr = String.valueOf(price);
        String flagStr = String.valueOf(flag);
        String chStr = String.valueOf(ch);
        
        System.out.println("int转字符串结果:" + numStr);
        System.out.println("double转字符串结果:" + priceStr);
        System.out.println("boolean转字符串结果:" + flagStr);
        System.out.println("char转字符串结果:" + chStr);
    }
}

2. 使用基本类型的包装类toString()方法

每个基本类型对应的包装类都提供了静态的toString()方法,也可以实现转换,但是需要注意如果传入的参数是null会抛出异常。

public class WrapperToString {
    public static void main(String[] args) {
        int age = 25;
        // 使用Integer包装类的toString方法
        String ageStr = Integer.toString(age);
        System.out.println("年龄字符串:" + ageStr);
        
        double score = 88.5;
        // 使用Double包装类的toString方法
        String scoreStr = Double.toString(score);
        System.out.println("分数字符串:" + scoreStr);
    }
}

3. 字符串拼接空字符串

这种方式比较简洁,通过基本类型和空字符串拼接,会自动转换为字符串类型,适合简单的场景使用。

public class ConcatToString {
    public static void main(String[] args) {
        long count = 1000L;
        // 拼接空字符串转换
        String countStr = count + "";
        System.out.println("数量字符串:" + countStr);
        
        float height = 175.5f;
        String heightStr = height + "";
        System.out.println("身高字符串:" + heightStr);
    }
}

字符串转基本类型的方法

1. 使用包装类的parseXxx()方法

这是最常用的字符串转基本类型的方式,每个包装类都提供了对应的parse方法,比如Integer.parseInt()、Double.parseDouble()等,但是要求字符串内容必须符合对应类型的格式,否则会抛出NumberFormatException异常。

public class StringToBasic {
    public static void main(String[] args) {
        String numStr = "123";
        // 字符串转int
        int num = Integer.parseInt(numStr);
        System.out.println("转换后的int值:" + num);
        
        String priceStr = "45.8";
        // 字符串转double
        double price = Double.parseDouble(priceStr);
        System.out.println("转换后的double值:" + price);
        
        String boolStr = "true";
        // 字符串转boolean
        boolean flag = Boolean.parseBoolean(boolStr);
        System.out.println("转换后的boolean值:" + flag);
    }
}

2. 使用包装类的valueOf()方法

包装类的valueOf()方法会返回对应的包装类对象,如果需要基本类型,可以自动拆箱,这种方式同样需要处理格式异常的问题。

public class StringToWrapper {
    public static void main(String[] args) {
        String idStr = "2024001";
        // valueOf返回Integer对象,自动拆箱为int
        int id = Integer.valueOf(idStr);
        System.out.println("用户ID:" + id);
        
        String rateStr = "0.85";
        double rate = Double.valueOf(rateStr);
        System.out.println("折扣率:" + rate);
    }
}

转换注意事项

  • 字符串转数值类型时,字符串内容只能包含对应类型的合法字符,比如转int的字符串不能包含字母、小数点等,否则会抛出NumberFormatException。
  • 如果字符串可能为null或者空字符串,转换前需要先做非空判断和格式校验,避免程序崩溃。
  • boolean类型的转换比较特殊,Boolean.parseBoolean()方法只有当字符串是"true"(忽略大小写)时返回true,其他所有情况都返回false,不会抛出异常。
  • 如果要转换的字符串是十六进制、八进制格式的数值,可以使用Integer.parseInt(String s, int radix)方法指定进制进行转换。
public class RadixParse {
    public static void main(String[] args) {
        // 十六进制的字符串转int
        String hexStr = "1A";
        int hexNum = Integer.parseInt(hexStr, 16);
        System.out.println("十六进制1A转十进制:" + hexNum);
        
        // 八进制的字符串转int
        String octStr = "12";
        int octNum = Integer.parseInt(octStr, 8);
        System.out.println("八进制12转十进制:" + octNum);
    }
}

常见转换场景对比

以下是不同转换方式的适用场景对比:

转换方向转换方法适用场景注意事项
基本类型转字符串String.valueOf()所有场景,尤其是需要避免空指针的场景支持所有基本类型,无空指针风险
基本类型转字符串包装类.toString()明确参数不为null的场景参数为null时会抛出NullPointerException
字符串转基本类型parseXxx()需要基本类型的场景字符串格式错误会抛NumberFormatException
字符串转基本类型valueOf()需要包装类对象的场景返回包装类对象,可自动拆箱

JavaString基本类型转换intdouble修改时间:2026-07-10 06:03:14

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。