news 2026/6/9 17:30:59

符串(String)与其他类型之间的转换教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
符串(String)与其他类型之间的转换教程

在 Java 中,字符串(String)与其他类型之间的转换是开发中的高频操作。以下是Java 字符串


一、字符串转基本数据类型

1.整数类型
  • 方法Integer.parseInt()(返回int)或Integer.valueOf()(返回Integer对象)。

  • 示例

    String str = "123"; int num1 = Integer.parseInt(str); // 基本类型 Integer num2 = Integer.valueOf(str); // 包装类型
  • 注意:若字符串包含非数字字符(如"123a"),会抛出NumberFormatException

2.浮点数类型
  • 方法Double.parseDouble()double)或Double.valueOf()Double对象)。

  • 示例

    String str = "3.14"; double num1 = Double.parseDouble(str); Double num2 = Double.valueOf(str);
  • 科学计数法支持:支持"1.23E4"等格式。

3.布尔类型
  • 方法Boolean.parseBoolean()(返回boolean)或Boolean.valueOf()(返回Boolean对象)。

  • 规则:仅"true"(不区分大小写)返回true,其他均返回false

    String str = "TRUE"; boolean flag1 = Boolean.parseBoolean(str); // true Boolean flag2 = Boolean.valueOf(str); // Boolean.TRUE
4.字符类型
  • 方法charAt(index)获取单个字符,或toCharArray()转换为字符数组。

  • 示例

    String str = "Hello"; char c = str.charAt(0); // 'H' char[] chars = str.toCharArray(); // ['H', 'e', 'l', 'l', 'o']

二、字符串转对象类型

1.日期类型
  • 方法:使用SimpleDateFormat解析字符串。

  • 示例

    String dateStr = "2023-10-01"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = sdf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); }
  • 注意SimpleDateFormat非线程安全,推荐使用DateTimeFormatter(Java 8+)。

2.枚举类型
  • 方法Enum.valueOf()将字符串转为枚举实例。

  • 示例

    public enum Color { RED, GREEN, BLUE } String colorStr = "RED"; Color color = Color.valueOf(colorStr); // Color.RED
3.自定义对象
  • JSON 转换:使用 Gson 或 Jackson 库。

    // 使用 Gson Gson gson = new Gson(); String json = "{\"name\":\"Alice\",\"age\":30}"; Person person = gson.fromJson(json, Person.class); // 使用 Jackson ObjectMapper mapper = new ObjectMapper(); Person person2 = mapper.readValue(json, Person.class);
  • XML 转换:使用 JAXB。

    JAXBContext context = JAXBContext.newInstance(Person.class); Unmarshaller unmarshaller = context.createUnmarshaller(); StringReader reader = new StringReader(xmlStr); Person person = (Person) unmarshaller.unmarshal(reader);

三、字符串转集合类型

1.List
  • 方法Arrays.asList()分割字符串为列表。

    String str = "a,b,c"; List<String> list = Arrays.asList(str.split(",")); // [a, b, c]
2.Set
  • 方法:通过HashSet构造函数转换。

    Set<String> set = new HashSet<>(Arrays.asList(str.split(",")));

四、字符串转字节数组与字符数组

1.字节数组
  • 方法getBytes(),支持指定字符编码。

    String str = "Hello"; byte[] bytes = str.getBytes(StandardCharsets.UTF_8);
2.字符数组
  • 方法toCharArray()

    char[] chars = "Hello".toCharArray();

五、进制转换

  • 十进制转其他进制

    int num = 255; String hex = Integer.toHexString(num); // "ff" String binary = Integer.toBinaryString(num); // "11111111"
  • 其他进制转十进制

    String binaryStr = "1010"; int decimal = Integer.parseInt(binaryStr, 2); // 10

六、异常处理与最佳实践

  1. 异常捕获

    • 数值转换时使用try-catch处理NumberFormatException

    • 日期解析捕获ParseException

  2. 空值检查

    if (str != null && !str.isEmpty()) { // 执行转换 }
  3. 性能优化

    • 频繁转换时优先使用基本类型方法(如parseInt()而非valueOf())。

    • 使用StringBuilder拼接字符串,避免+操作符的性能损耗。


七、高级场景

1.自定义格式转换
  • 正则表达式验证

    String email = "test@example.com"; Pattern pattern = Pattern.compile("^[\\w.-]+@[\\w.-]+\\.\\w+$"); Matcher matcher = pattern.matcher(email); boolean isValid = matcher.matches();
  • Apache Commons Lang

    import org.apache.commons.lang3.StringUtils; String reversed = StringUtils.reverse("hello"); // "olleh"
2.Base64 编码/解码
  • 示例

    String encoded = Base64.getEncoder().encodeToString("Hello".getBytes()); byte[] decoded = Base64.getDecoder().decode(encoded);

总结

Java 字符串转换需根据目标类型选择合适方法,注意异常处理和输入验证。对于复杂场景(如 JSON/XML),推荐使用成熟库(Gson、Jackson、JAXB)。掌握这些技巧可显著提升代码健壮性和开发效率。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 5:56:49

B站字幕提取终极指南:用BiliBiliCCSubtitle轻松获取视频字幕

B站字幕提取终极指南&#xff1a;用BiliBiliCCSubtitle轻松获取视频字幕 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 还在为无法保存B站视频中的精彩字幕而烦恼…

作者头像 李华
网站建设 2026/6/5 5:59:26

揭秘Open-AutoGLM本地部署全流程:5步实现高性能模型运行

第一章&#xff1a;揭秘Open-AutoGLM本地部署全流程&#xff1a;5步实现高性能模型运行在本地环境中高效部署 Open-AutoGLM 模型&#xff0c;是实现私有化推理与定制化开发的关键路径。通过以下五个步骤&#xff0c;可快速完成从环境准备到服务启动的完整流程&#xff0c;充分发…

作者头像 李华
网站建设 2026/6/4 13:30:22

iTop平台完全配置手册:打造企业级IT服务管理系统的核心技巧

iTop平台完全配置手册&#xff1a;打造企业级IT服务管理系统的核心技巧 【免费下载链接】iTop A simple, web based IT Service Management tool 项目地址: https://gitcode.com/gh_mirrors/it/iTop 想要构建高效的企业IT服务管理体系吗&#xff1f;iTop开源平台为您提…

作者头像 李华
网站建设 2026/6/5 4:33:32

为什么Path of Building是流放之路玩家必备的构筑神器

在《流放之路》这款复杂的ARPG游戏中&#xff0c;如何规划一个既强力又适合自己的角色构筑一直是玩家面临的最大挑战。而Path of Building作为社区公认的终极构筑工具&#xff0c;彻底改变了玩家们规划build的方式。这款开源工具让你在实际投入游戏资源前&#xff0c;就能精确模…

作者头像 李华
网站建设 2026/6/5 11:00:50

Open-AutoGLM智能体电脑深度解析(全球首款自进化AI终端大揭秘)

第一章&#xff1a;Open-AutoGLM智能体电脑的基本架构与核心理念Open-AutoGLM智能体电脑是一种基于大语言模型驱动的自主决策系统&#xff0c;旨在实现从自然语言指令到具体操作行为的端到端自动化。其核心在于将语言模型作为“大脑”&#xff0c;结合感知、规划、执行模块&…

作者头像 李华