[C#]Vergelijken van 2 strings met een afwijking

Pagina: 1
Acties:

  • MoNo79
  • Registratie: Juli 2001
  • Laatst online: 21-03 21:47
Ik wil graag een methode maken die een true returnt als de opgegeven strings gelijk zijn, maar er mag een afwijking met een opgegeven aantal.

Voorbeeld:
aantal fouten maximaal 2

"Hallo met mij" vergelijken met "Hallo met mij" resultaat is true
"Hallo met mij" vergelijken met "Hallo mat mii" resultaat is true
"Hallo met mij" vergelijken met "Hello mat mit" resultaat is false

Mijn vraag is hoe doe ik dat het efficiëntst en zijn daar al een goede algoritme voor.

Ik heb zelf ook een methode geschreven, alleen deze geeft soms index out of range fouten, alleen weet ik waar dat vandaan komt :? .

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
    private bool VoldoetAfwijking(string zoekWaarde, string vergelijkMet, int maxAantalAfwijkend)
        {
            int aantalAfwijkend = 0;
        
            string groot = "";
            string klein = "";
            if(zoekWaarde.Length>=vergelijkMet.Length)
            {
                groot = zoekWaarde;
                klein = vergelijkMet;
            }
            else
            {
                groot =  vergelijkMet;
                klein = zoekWaarde;
            }
            
            int t = 1;
            int startIndex = 0;
            
            while(t<=klein.Length&&aantalAfwijkend<maxAantalAfwijkend)
            {
                 
                if(!klein.Substring(startIndex,t).Equals(groot.Substring(startIndex,t)))
                {
                    aantalAfwijkend++;
                    startIndex = t;
                    t = 0;
                }
                t++;
            }
            
            if(aantalAfwijkend < maxAantalAfwijkend)
            {
                return true;
            }               
        
    
        return false;

        }

[ Voor 18% gewijzigd door MoNo79 op 12-02-2006 21:38 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-04 17:49

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • MoNo79
  • Registratie: Juli 2001
  • Laatst online: 21-03 21:47
Dank je wel :) ziet er beter uit als wat ik elkaar heb geprutst