Je lis de nombreux fichiers texte volumineux et je dois vérifier si chaque extrait de texte contient une double valeur ou non. Le code regex que j'utilise actuellement fait que mon programme tourne très lentement car au total je vérifie 10 milliards de chaînes. Je sais qu'en raison du grand nombre de chaînes que je vérifie, mon programme doit fonctionner lentement. Mais existe-t-il un moyen plus efficace et plus rapide de vérifier si une chaîne est une valeur double, diminuant ainsi l'exécution du programme? MerciJava - Le moyen le plus rapide de vérifier si une chaîne contient une double valeur
if (string[i].matches(".*\\d.*")) {
.....
}
En outre, les chaînes du fichier texte sont lus dans un tableau avant que je les vérifie donc temps de lecture ne perd pas constamment le fichier texte.
'Est-ce matcher.find ("\\ d")'. Votre regex est lente car tenter d'exécuter la regex '. * \\ d. *' A de mauvaises performances - vous avez deux '. *' 'Qui peuvent tenter de prendre n'importe quelle longueur de 0 à N caractères. 'find' sur une regex va chercher à partir de chaque endroit. – Patashu
Sauf si vous avez besoin des chaînes en mémoire pour une autre raison, vous réalisez des gains de performance ambigus en lisant les chaînes en mémoire au prix de l'utilisation de la mémoire stockant ces chaînes. Il pourrait être utile d'essayer d'éviter de lire les chaînes dans le tableau avant de vérifier. –