在Android应用程序中,我想使用Scanner类从文本文件中读取浮动列表(它是OpenGL的顶点坐标列表).确切的代码是:
Scanner in = new Scanner(new BufferedInputStream(getAssets().open("vertexes.off")));
final float[] vertexes = new float[nrVertexes];
for(int i=0;i<nrVertexFloats;i++){
    vertexes[i] = in.nextFloat();
}
然而,似乎这是非常慢的(读取10,000个花车需要30分钟!) - 在2.1仿真器上进行测试.这是怎么回事?当我在PC上使用它时,我不记得Scanner是那么慢(事实上,我之前从未读过100多个值).或者是其他东西,比如从资产输入流中读取?
谢谢您的帮助!
假设我有一些String包含"This sentence was written on 2020-03-21 by person 1234567 at 07:23 hours". 我如何仅提取"1234567"字符串的一部分?也许使用从字符串中提取数字 - StringUtils Java问题中的解决方案,但我不知道如何仅将提取的数字限制在所需的序列上。
如果我在这个字符串上使用str.replaceAll("[^0-9]", ""),我会得到"2020032112345670723"这意味着它提取字符串中的所有数字,但我只想要包含一定数量数字的序列(在我的例子中是 7)。
此外,序列并不总是在同一位置,因此使用substring(index from, index to)将不起作用。