" "
大きな XML ファイルを処理する XML パーサーを構築しています。文字列に,"\n"
またはではない char が含まれているかどうかを検出する最速の方法を探しています"\r"
。正規表現を使用してみましたが、遅すぎて重いです。私が試した別の方法は、 の ASCII 番号を取得し" "
、"\n"
文字"\r"
列のサイズからそれを減らすことでした。それが大きい場合は、少なくとも 1 つの文字があります。この操作も重いです。良いアドバイスをいただければ幸いです。
編集 - 明確化:
XML 解析 + 文字列操作の 1 行で 300 ミリ秒は遅すぎます。
私が実装した2つの方法の例:
レデックスによる:
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 行以上のファイル (各行が個別に処理される) では、これは非常に重要です。
十分に明確であることを願っています。ありがとう!