我正在构建一个 XML 解析器来处理一个大的 XML 文件,并且我正在寻找检测字符串是否包含字符(不是" "
,"\n"
或"\r"
)的最快方法。我试过使用正则表达式,但它太慢太重了。我尝试的另一种方法是获取 的 ASCII 数字" "
,"\n"
并"\r"
从字符串的大小中减少它,如果它更大,那么至少有一个字符。这个操作也很重。好的建议将不胜感激。
编辑 - 澄清:
对于一行 XML 解析 + 字符串操作来说,太慢了 300 毫秒。
我实施的两种方式的示例:
通过 Redex:
if (!str.matches(".*\\w.*")
{
// str that doesn't contains chars
}
通过总结 ASCII 值:
if (numOfWhitespaces + numOfSpecialChars >= str.length()) // +1 for ending /r in
str
{
// str that doesn't contains chars
}
第一个解决方案(正则表达式)在 200 毫秒内较慢。在一个有 500 多行的文件上(每行都是独立处理的),这一点至关重要。
我希望它足够清楚。谢谢!