gpt4 book ai didi

java - 在不分配字符串的情况下在Java中将字符串转换为int

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:21:43 24 4
gpt4 key购买 nike

我有几千行文本文件,类似这样:

0000:0010:1111:3000
0003:0010:1113:3000
0004:0010:1188:3009

依此类推,其中数据将被解析为整数。

最明显的方法是使用 Integer.parseInt(String)。但是,它需要一个 String,并且由于 String 是不可变的,我们必须一次又一次地分配 String 只是为了将它们转换为 int .

它要在移动设备上运行,分配一个字符串并让 GC 运行需要相当大的努力。

我希望能够有一个像 parseInt(char[] chars, int offset, int length) 这样的方法,这样我们就不需要进行分配了。那可能吗?标准 Java/JDK/Android 库中是否有任何实现可以做到这一点?

最佳答案

你可以使用 Scanner并调用useDelimiter(String)设置您的分隔符。类似的东西,

String str = "0000:0010:1111:3000\n" + "0003:0010:1113:3000\n"
+ "0004:0010:1188:3009";
Scanner sc = new Scanner(str);
sc.useDelimiter("[:|\\s]+"); // <-- one or more colon or whitespace
while (sc.hasNextInt()) {
System.out.printf("%04d%n", sc.nextInt()); // <-- format to 4 digits with
// leading zeros.
}

关于java - 在不分配字符串的情况下在Java中将字符串转换为int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28184893/

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