gpt4 book ai didi

java - 在java中从字符串中获取部分内容的最佳方法

转载 作者:行者123 更新时间:2023-12-01 22:20:26 25 4
gpt4 key购买 nike

我有一个像下面这样的字符串

12SELVASOFTWAREENGINEER................323

这个字符串长度超过10000

这个字符串的前两个字母是员工编号

所以我可以像下面这样得到我的员工ID

String empid = str.substring(0,2);

但是这个字符串为原来的String创建了相同的空间,所以会发生内存泄漏。

如何避免这种情况?

他们是否有任何替代或有效的方法是在 java 中获取字符串的一部分

任何帮助将不胜感激!!!

最佳答案

... but this string creates the same space for original string.so memory leak will happen.

我认为您指的是旧版本 Java 中 String 的行为,其中 String.substring(...) 创建了一个共享原始 String 对象的支持数组。正如您所指出的,那可能会导致内存泄漏;例如如果原始字符串变得不可访问而子字符串没有。

相关代码可以看这里:

此问题已在 Java 7 中修复

在 Java 7 之前,标准的解决方法是执行如下操作:

   String empid = new String(str.substring(0, 2)); 

(new String(...) 创建一个不与原始字符串或子字符串共享其后备数组的字符串。)

但是,只有在以下情况下才建议这样做:

  • 您使用的是旧版本的 Java,
  • 原始字符串可能很大,并且
  • 子字符串可能会长期存在。

关于java - 在java中从字符串中获取部分内容的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40488495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com