跳转至

Java 中 String 与 int 的相互转换

简介

在 Java 编程中,Stringint 是两种常用的数据类型。String 用于表示文本,而 int 用于表示整数。在实际开发中,我们经常需要在这两种数据类型之间进行转换,例如将用户输入的字符串转换为整数进行数学运算,或者将整数转换为字符串用于显示。本文将详细介绍 Java 中 Stringint 相互转换的基础概念、使用方法、常见实践以及最佳实践。

目录

  1. 基础概念
  2. String 转 int 的方法
  3. int 转 String 的方法
  4. 常见实践
  5. 最佳实践
  6. 小结
  7. 参考资料

基础概念

String

String 是 Java 中的一个类,用于表示一系列字符。在 Java 中,字符串是不可变的,这意味着一旦创建了一个字符串对象,就不能修改它的内容。例如:

String str = "123";

int

int 是 Java 中的一种基本数据类型,用于表示整数。它占用 32 位的存储空间,取值范围是 -2147483648 到 2147483647。例如:

int num = 123;

String 转 int 的方法

使用 Integer.parseInt() 方法

Integer.parseInt() 是最常用的将字符串转换为整数的方法。它接受一个字符串参数,并返回对应的整数。如果字符串不能被解析为有效的整数,会抛出 NumberFormatException 异常。

public class StringToIntExample {
    public static void main(String[] args) {
        String str = "123";
        try {
            int num = Integer.parseInt(str);
            System.out.println("转换后的整数: " + num);
        } catch (NumberFormatException e) {
            System.out.println("字符串不能被解析为整数: " + e.getMessage());
        }
    }
}

使用 Integer.valueOf() 方法

Integer.valueOf() 方法也可以将字符串转换为整数。它返回一个 Integer 对象,而不是基本数据类型 int。不过,Java 会自动进行拆箱操作,将 Integer 对象转换为 int 类型。

public class StringToIntValueOfExample {
    public static void main(String[] args) {
        String str = "456";
        Integer integerObj = Integer.valueOf(str);
        int num = integerObj; // 自动拆箱
        System.out.println("转换后的整数: " + num);
    }
}

int 转 String 的方法

使用 String.valueOf() 方法

String.valueOf() 是将整数转换为字符串的最简单方法。它接受一个整数参数,并返回对应的字符串。

public class IntToStringExample {
    public static void main(String[] args) {
        int num = 789;
        String str = String.valueOf(num);
        System.out.println("转换后的字符串: " + str);
    }
}

使用 Integer.toString() 方法

Integer.toString() 方法也可以将整数转换为字符串。它是 Integer 类的一个实例方法,需要一个 Integer 对象来调用。不过,Java 会自动进行装箱操作,将 int 类型转换为 Integer 对象。

public class IntToStringIntegerExample {
    public static void main(String[] args) {
        int num = 101;
        String str = Integer.toString(num);
        System.out.println("转换后的字符串: " + str);
    }
}

使用字符串拼接

通过将整数与一个空字符串拼接,也可以将整数转换为字符串。

public class IntToStringConcatenationExample {
    public static void main(String[] args) {
        int num = 202;
        String str = "" + num;
        System.out.println("转换后的字符串: " + str);
    }
}

常见实践

从用户输入中获取整数

在 Java 中,通常使用 Scanner 类来获取用户输入。用户输入的内容是字符串,需要将其转换为整数进行后续处理。

import java.util.Scanner;

public class UserInputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个整数: ");
        String input = scanner.nextLine();
        try {
            int num = Integer.parseInt(input);
            System.out.println("你输入的整数是: " + num);
        } catch (NumberFormatException e) {
            System.out.println("输入不是有效的整数: " + e.getMessage());
        }
        scanner.close();
    }
}

格式化输出整数

在输出整数时,有时需要将其转换为字符串并进行格式化。例如,将整数转换为固定长度的字符串。

public class FormattingExample {
    public static void main(String[] args) {
        int num = 12;
        String formattedStr = String.format("%03d", num);
        System.out.println("格式化后的字符串: " + formattedStr);
    }
}

最佳实践

异常处理

在将字符串转换为整数时,一定要进行异常处理,因为用户输入的字符串可能不是有效的整数。使用 try-catch 块捕获 NumberFormatException 异常,避免程序崩溃。

性能考虑

  • String.valueOf()Integer.toString() 方法的性能比字符串拼接要好,因为字符串拼接会创建新的字符串对象,增加内存开销。
  • Integer.parseInt() 方法比 Integer.valueOf() 方法更高效,因为 Integer.valueOf() 会返回一个 Integer 对象,需要额外的内存空间。

小结

本文详细介绍了 Java 中 Stringint 相互转换的方法,包括 StringintInteger.parseInt()Integer.valueOf() 方法,以及 intStringString.valueOf()Integer.toString() 和字符串拼接方法。同时,还介绍了常见实践和最佳实践,希望能帮助读者更好地处理 Stringint 之间的转换。

参考资料

  • 《Effective Java》
  • 《Java 核心技术》