J'ai 2 chaînes. Chaque ut dans une liste en utilisant une boucle foreach. J'utilise ensuite une boucle for pour parcourir chaque caractère dans les 2 listes pour voir s'il y a une différence. Une fois que je trouve une différence entre les chaînes, je veux trouver le début et la fin de ce mot qui a changé, par exemple. String1
est différent String2
Je veux que la sortie soit "String1 String2 is the first second string"
. Je prévois trouver le début et la fin du mot modifié à l'aide indexOf
et au moment où il est de ne pas trouver la position de l'indice.Trouver le début et la fin d'un mot dans une chaîne en utilisant l'index de
static void Main(string[] args)
{
const string a = "String1 is the first string";
const string b = "String2 is the second string";
List<String> listString1 = new List<string>();
List<String> listString2 = new List<string>();
foreach (var item in a)
{
listString1.Add(item.ToString());
}
foreach (var item in b)
{
listString2.Add(item.ToString());
}
for (int i = 0; i < a.Length; i++)
{
var or = listString1[i];
var ed = listString2[i];
int nextSpace = or.IndexOf(' ', index);
int previousSpace = or.LastIndexOf(' ', index);
if (or!=ed)
{
Console.WriteLine();
}
}
}
vous devez utiliser le débogueur et parcourir votre code ... en regardant simplement vos 2 premières boucles foreach et en regardant votre boucle for, vous n'obtiendrez jamais trouver la chaîne de début et de fin .. regardez dans string.Split() fonction pour les débutants – MethodMan
Je passe à travers mon code et fait exactement ce que je veux faire, c'est-à-dire passer par chaque lettre de la chaîne et trouver si un caractère est changé. Si c'est le cas, je veux trouver le mot complet où le personnage a changé, par exemple. String1 et String2 sont différents donc je veux maintenant afficher les 2 mots qui sont différents. –
@CraigGallagher Cela suppose que les chaînes que vous comparez auront exactement la même longueur, et que la seule différence entre elles sera un mot/une lettre différent (e)? –