Char/comparaison de chaînes de caractères
Je suis d'essayer d'avoir une suggestion de fonctionnalité pour la fonction de recherche dans mon programme, par exemple de type I janw doe dans la section de recherche et il produira PAS de MATCH - vous dire que jane doe? Je ne suis pas sûr de ce que le problème est, peut-être quelque chose à faire avec le char/comparaison de chaînes de caractères..j'ai essayé de comparer les deux variables de type char par exemple char temp -->temp.Contient ...etc, mais une erreur s'affiche (char ne contient pas une définition pour les Contient). Aimerait toute aide sur ce! 8)
if (found == false)
{
Console.WriteLine("\n\nMATCH NOT FOUND");
int charMatch = 0, charCount = 0;
string[] checkArray = new string[26];
//construction site /////////////////////////////////////////////////////////////////////////////////////////////////////////////
for (int controlLoop = 0; controlLoop < contPeople.Length; controlLoop++)
{
foreach (char i in userContChange)
{
charCount = charCount + 1;
}
for (int i = 0; i < userContChange.Length; )
{
string temp = contPeople[controlLoop].name;
string check=Convert.ToString(userContChange[i]);
if (temp.Contains(check))
{
charMatch = charMatch + 1;
}
}
int half = charCount / 2;
if (charMatch >= half)
{
checkArray[controlLoop] = contPeople[controlLoop].name;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
Console.WriteLine("Did you mean: ");
for (int a = 0; a < checkArray.Length; a++)
{
Console.WriteLine(checkArray[a]);
}
///////////////////////////////////////////////////////////////////////////////////////////////////
Votre question n'est pas très clair, ce que la ligne de code qui pose problème?
OriginalL'auteur Quigg15405 | 2012-10-16
Vous devez vous connecter pour publier un commentaire.
Une chaîne est composée de plusieurs personnages. Un caractère est un primitif, de même, il n'est pas "contenir" tous les autres éléments. Une chaîne est, fondamentalement, un tableau de caractères.
Pour la comparaison de chaîne de caractères et caractères:
Ou si vous avez une seule chaîne de chiffres.. je suppose que
Toutes ces assertions sont vraies
Mais, la principale raison pour laquelle je voulais faire des commentaires sur votre question, est de proposer une approche alternative pour suggérer "voulez-vous dire?". Il y a un algorithme appelé Levenshtein qui calcule le nombre de caractère unique des modifications nécessaires pour convertir une chaîne à l'autre. Il peut être utilisé comme une mesure de la proximité de deux chaînes sont. Vous pouvez l'examiner comment cet algorithme fonctionne, car cela pourrait vous aider.
Voici une application que j'ai trouvé qui montre: L'Appariement approximatif de chaînes avec k-différences
Également le lien wikipédia Levenshtein
l'algorithme est en fait assez simple, peut-être voir si vous pouvez trouver une meilleure application qui vous montre étape par étape
OriginalL'auteur Alan
Type Char ne peut pas avoir
.Contains()
car il se trouve à seulement 1 char type de valeur.Dans votre cas (si j'ai bien compris), peut-être vous avez besoin d'utiliser
.Equals()
ou la==
opérateur.Remarque: pour comparer Chaîne correctement, utilisez
.Equals()
,le
==
opérateur ne fonctionne pas bien dans ce cas parce queString
est le type de référence.Espérons que cette aide!
Bien sûr! j'ai remarqué que l'opérateur == sur la Chaîne de la comparaison. Le type Char peut être comparé avec l'opérateur==, mais c'est un type de valeur. Droit?
C'est un type de valeur, oui
Peut-être que je n'étais pas capable de l'expliquer clairement dans le post, désolé!
Cant directement utiliser == ou Equals() pour comparer les char et string, vous avez encore besoin de convertir l'un d'eux. Utiliser, par exemple: label[0].ToString().Equals("Z")
OriginalL'auteur T-moty
char
type doesnt ont laContains()
méthode, mais vous pouvez utiliser de l'iit comme ceci:'a'.ToString().Contains(...)
si ne pas considérer que la performance, un autre moyen simple:
OriginalL'auteur aspark