gpt4 book ai didi

Java 扫描器 useDelimiter 在法语中不起作用

转载 作者:行者123 更新时间:2023-12-01 23:18:40 27 4
gpt4 key购买 nike

我有一串 float ,例如

1.0000\0.0000\0.0000\0.00000\1.0000\0.0000\0.0000

我需要解析它。我使用 Java 扫描仪并使用反斜杠作为分隔符。它已经以英语运行多年。就在今天,我将法语设置为默认语言,但在法语中它无法解析,即它找不到下一个 double 。我的计算机上也有希伯来语,它可以毫无问题地解析希伯来语。仅仅法语就是一个问题。

这是代码:

static float[] parseMultFloat( String tmp1) {
float [] ret1 = null;
double[] val = new double[32]; // arbitrary limit of 32
int i, n = 0;
if( tmp1 == null) return null;
Scanner sc = new Scanner(tmp1).useDelimiter("\\\\");
while(sc.hasNextDouble() && n < 32) {
val[n++] = sc.nextDouble();
}
if( n>0) {
ret1 = new float[n];
for( i=0; i<n; i++) ret1[i] = (float) val[i];
}
return ret1;
}

使用调试器,我可以单步执行到 while(sc.hasNextDouble)。在英语和希伯来语中,它会找到我所有的号码。在法语中,它只是跳过 while 并离开 n=0

还有其他方法可以获取我的电话号码吗?该方法也适用于法语吗?

最佳答案

扫描仪可识别区域设置。对于法语来说, double 看起来像 0,00023

如果格式未更改,请在读取下一个 double 值之前设置美国区域设置。

sc.useLocale(Locale.US);

关于Java 扫描器 useDelimiter 在法语中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20855628/

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