杰瑞科技汇

string和char如何转换?

转换方向 方法/代码 说明
String -> char charAt(index) 获取字符串中指定索引的单个字符
String -> char[] toCharArray() 将整个字符串转换为字符数组
char -> String String.valueOf(char) 推荐,将单个字符转换为字符串。
Character.toString(char) 推荐,将单个字符转换为字符串。
"" + char 简单,但会创建新的 StringBuilder 对象,性能略差。
char[] -> String new String(charArray) 推荐,用字符数组创建新字符串。
String.valueOf(charArray) 推荐,用字符数组创建新字符串。

Stringchar

String 转换为单个 char

如果字符串的长度为1,你可以使用 String.charAt() 方法。

string和char如何转换?-图1
(图片来源网络,侵删)

方法:public char charAt(int index)

  • 返回指定索引处的 char 值。
  • 索引从 0 开始。
  • 注意:如果字符串为空 () 或索引越界,会抛出 StringIndexOutOfBoundsException

示例代码:

public class StringToChar {
    public static void main(String[] args) {
        String str = "A";
        // 将 String 转换为 char
        char ch = str.charAt(0);
        System.out.println("原始字符串: " + str);
        System.out.println("转换后的字符: " + ch);
        System.out.println("字符的类型: " + ((Object)ch).getClass().getSimpleName()); // 输出 Character
    }
}

⚠️ 重要注意事项: char 是 Java 的基本数据类型,而 String 是对象。charAt() 返回的是一个 char 基本类型,而不是 Character 对象,当你需要一个 Character 对象时(例如在泛型集合中),Java 会自动进行自动装箱

// 自动装箱示例
Character chObject = str.charAt(0); // char 自动装箱为 Character

String 转换为 char 数组

如果你想获取字符串中所有的字符,可以使用 toCharArray() 方法。

string和char如何转换?-图2
(图片来源网络,侵删)

方法:public char[] toCharArray()

  • 将此字符串转换为一个新的字符数组。

示例代码:

public class StringToCharArray {
    public static void main(String[] args) {
        String str = "Hello";
        // 将 String 转换为 char 数组
        char[] charArray = str.toCharArray();
        System.out.println("原始字符串: " + str);
        System.out.println("转换后的字符数组: " + java.util.Arrays.toString(charArray));
        // 遍历字符数组
        System.out.print("遍历字符数组: ");
        for (char c : charArray) {
            System.out.print(c + " ");
        }
    }
}

charString

将单个 char 转换为 String

有几种方法可以实现,推荐使用静态方法。

方法 1:String.valueOf(char data) (推荐)

string和char如何转换?-图3
(图片来源网络,侵删)
  • 这是最直接、最高效的方法。

方法 2:Character.toString(char c) (推荐)

  • Character 类的静态方法,也非常清晰。

方法 3:String 构造函数

  • new String(char[] value) 需要一个字符数组,对于单个字符,你需要先创建一个只有一个元素的数组。

方法 4:字符串连接 ("" + char)

  • 这种方法会创建一个临时的 StringBuilder 来完成连接,虽然简单,但在性能敏感的代码中不如前两种方法。

示例代码:

public class CharToString {
    public static void main(String[] args) {
        char ch = 'Z';
        // 方法 1: String.valueOf() - 推荐
        String str1 = String.valueOf(ch);
        System.out.println("使用 String.valueOf(): " + str1);
        // 方法 2: Character.toString() - 推荐
        String str2 = Character.toString(ch);
        System.out.println("使用 Character.toString(): " + str2);
        // 方法 3: String 构造函数
        String str3 = new String(new char[]{ch});
        System.out.println("使用 String 构造函数: " + str3);
        // 方法 4: 字符串连接
        String str4 = "" + ch;
        System.out.println("使用字符串连接: " + str4);
        // 验证类型
        System.out.println("\n验证 str1 的类型: " + str1.getClass().getSimpleName()); // 输出 String
    }
}

char[]String

如果你有一个字符数组,想把它合并成一个字符串。

方法 1:new String(char[] value) (推荐)

  • 使用字符数组创建一个新的 String 对象。

方法 2:String.valueOf(char[] data) (推荐)

  • 功能与构造函数类似,也是将字符数组内容复制到一个新的 String 对象中。

示例代码:

public class CharArrayToString {
    public static void main(String[] args) {
        char[] charArray = {'J', 'a', 'v', 'a'};
        // 方法 1: new String() - 推荐
        String str1 = new String(charArray);
        System.out.println("使用 new String(): " + str1);
        // 方法 2: String.valueOf() - 推荐
        String str2 = String.valueOf(charArray);
        System.out.println("使用 String.valueOf(): " + str2);
    }
}

总结与最佳实践

转换类型 推荐方法 原因
String -> char myString.charAt(0) 获取单个字符的标准方法。
String -> char[] myString.toCharArray() 获取所有字符的标准方法。
char -> String String.valueOf(myChar)Character.toString(myChar) 代码清晰、性能好,是公认的最佳实践,避免使用 "" + char
char[] -> String new String(myCharArray)String.valueOf(myCharArray) 都是标准且高效的方法,可以根据个人或团队编码风格选择。

记住这些核心方法,你就可以在 Java 中轻松自如地进行 Stringchar 之间的转换了。

分享:
扫描分享到社交APP
上一篇
下一篇