Java 在不创建字符串的情况下将CharSequence解析为double
我需要在Java中用数亿行解析数千兆字节的文本数据 每一行都存储在(实现的)中,并在固定位置包含多个整数和浮点数 在第一个版本中,我与和一起使用。然而,这是非常缓慢的。由于每行多次创建几十个临时字符串对象,垃圾收集器正在消耗大量资源 在我切换到之后,我的性能得到了很大的提高。它可以直接从中解析数字 不幸的是,我找不到浮点数的这种方法Java 在不创建字符串的情况下将CharSequence解析为double,java,Java,我需要在Java中用数亿行解析数千兆字节的文本数据 每一行都存储在(实现的)中,并在固定位置包含多个整数和浮点数 在第一个版本中,我与和一起使用。然而,这是非常缓慢的。由于每行多次创建几十个临时字符串对象,垃圾收集器正在消耗大量资源 在我切换到之后,我的性能得到了很大的提高。它可以直接从中解析数字 不幸的是,我找不到浮点数的这种方法 有人知道一种方法或库可以提供浮动解析和偏移量,而不是吗?因为我不确定它是否涵盖了您的所有期望,它似乎可以提供您所需要的东西 它提供了以下方法: double par
有人知道一种方法或库可以提供浮动解析和偏移量,而不是吗?因为我不确定它是否涵盖了您的所有期望,它似乎可以提供您所需要的东西 它提供了以下方法:
double parseDouble(java.lang.CharSequence s, int start, int end) throws java.lang.NumberFormatException
如果这不是您想要的,很抱歉占用您的时间。我想您正在执行
CharBuffer.wrap(line)
?我不明白您将在哪里使用String#substring
。。。如果你知道固定位置,你可以做cb.position(position).limit(limit)代码>通过for循环
,但仍会创建大量字符串