¿El método QHash::contains distingue entre mayúsculas y minúsculas o incentiva entre mayúsculas y minúsculas?

StackOverflow https://stackoverflow.com/questions/1078004

  •  21-08-2019
  •  | 
  •  

Pregunta

tengo un QHash<QString,QString>.Utilizo la siguiente expresión para comprobar si hay un valor en el QHash::keys() O no.

//programme
QHash<QString,QString> samplehash;
QString value = "somevalue";
if(samplehash.contains(value)) // Condition - 1
{
 //some code
}

A veces las condiciones anteriores coinciden, a veces no para las mismas letras en diferente caso.Es el QHash::contains ¿El método distingue entre mayúsculas y minúsculas?

¿Fue útil?

Solución

QHash.contains() es sensible a mayúsculas como John T menciona. Sin el código no hay mucho que averiguar. Se puede imaginar que haciendo un == entre las teclas.

Por favor, no olvide que el acceso a un elemento inexistente a través [] creará una entrada vacía en el hash, esto podría ser lo que hace que su fallo. contains no insertar una entrada en la tabla hash, tampoco lo hace value

Otros consejos

Es mayúsculas y minúsculas. La práctica común para el manejo de datos de múltiples fuentes y comparándolo es convertir todo en el mismo formato en primer lugar, que por lo general consiste en hacer todo en minúsculas antes de la comparación.

Esta es una práctica común, especialmente en los sitios web para el manejo de los inicios de sesión, o la entrada del usuario en aplicaciones para evitar la vieja ' situaciones y pebkac ' hacen que sea más fácil para los usuarios.

Una solución podría ser subclasificar QString y anular el operator== para hacer la comparación con el modo que no distingue entre mayúsculas y minúsculas, utilizando QString::comparar.

Pero la solución de Juan T. Definitivamente es mejor si se ajusta a tus limitaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top