Java - 检查字符串是否包含double值的最快方法

时间:2013-03-05 01:34:54

标签: java regex arrays string double

我正在阅读许多大型文本文件,我必须检查每个文本片段是否包含double值。我目前正在使用的正则表达式代码导致我的程序运行速度非常慢,因为我总共检查了100亿个字符串。我知道由于我正在检查大量的字符串,我的程序必然会运行缓慢。但有没有更有效和更快速的方法来检查String是否是一个double值,从而减少程序的运行时间?感谢

if (string[i].matches(".*\\d.*")) {

.....
}

此外,在我检查之前,文本文件中的字符串被读入数组,因此不会浪费时间不断阅读文本文件。

2 个答案:

答案 0 :(得分:4)

使用PatternMatcher类:

public static final Pattern DOUBLE = Pattern.compile("\\d");

...

if (DOUBLE.matcher(string[i]).find()) {
    ...
}

答案 1 :(得分:0)

此表达式

"\\d+\\.\\d+([eE]\\d+)?"

允许1.1或1.1e1或1.1E1格式。

请注意,Java允许更多,例如1.或1.或0x1p1