Aquí incluyo tres filtros de matching, uno que compara el principio de la palabra, otro el final y otro tanto el principio como el final.
Es un buen ejemplo de cómo se interactúa entre string y char[] cuando necesitamos implementar operaciones con cadenas a un nivel más bajo.
//primer filtro de matching mas fuerte (principio y final de la palabra)
public bool match1(string s1, string s2)
{
//haremos el matching de una sola letra si alguna palabra es <2
if (s1.Length "<" 2 || s2.Length "<" 2)
{
char[] p1 = s1.ToCharArray();
char[] p2 = s2.ToCharArray();
//comprobamos
if (p1[0] == p2[0] && p1[s1.Length - 1] == p2[s2.Length - 1])
{
return true;
}
return false;
}
//haremos el matching con dos letras
else
{
char[] p1 = s1.ToCharArray();
char[] p2 = s2.ToCharArray();
//comprobamos
if (p1[0] == p2[0] && p1[1] == p2[1] &&
p1[s1.Length - 1] == p2[s2.Length - 1] && p1[s1.Length - 2] == p2[s2.Length - 2])
{
return true;
}
return false;
}
}
//segundo filtro de matching mas leve (principio de la palabra)
public bool match2(string s1, string s2)
{
//haremos el matching de una sola letra
if (s1.Length "<" 2 || s2.Length "<" 2)
{
char[] p1 = s1.ToCharArray();
char[] p2 = s2.ToCharArray();
//comprobamos
if (p1[0] == p2[0])
{
return true;
}
return false;
}
//haremos el matching con dos letras
else
{
char[] p1 = s1.ToCharArray();
char[] p2 = s2.ToCharArray();
//comprobamos
if (p1[0] == p2[0] && p1[1] == p2[1])
{
return true;
}
return false;
}
}
//tercer filtro de matching mas leve (final de la palabra)
public bool match3(string s1, string s2)
{
//haremos el matching de una sola letra
if (s1.Length "<" 2 || s2.Length "<" 2)
{
char[] p1 = s1.ToCharArray();
char[] p2 = s2.ToCharArray();
//comprobamos
if (p1[0] == p2[0])
{
return true;
}
return false;
}
//haremos el matching con dos letras
else
{
char[] p1 = s1.ToCharArray();
char[] p2 = s2.ToCharArray();
int l1 = s1.Length;
int l2 = s2.Length;
//comprobamos
if (p1[l1 - 1] == p2[l2 - 1] && p1[l1 - 2] == p2[l2 - 2])
{
return true;
}
return false;
}
}
NOTA: en las partes sombreadas en color gris cambiar los "<" por < (problemas con el html :-( ).
1 comentario:
Puedes utilizar < para el «menor que» y > para el «mayor que». También puedes usar la etiqueta <pre>:
if (s1.Length < 2) ...
o bien
<pre>
if (s1.Length < 2) ...
</pre>
El <pre> es mejor para poner código fuente porque así no tienes que poner <br /> a tutiplén, pones el código tal cual lo tienes. Es como una especie de verbatim si has usado LaTeX.
Publicar un comentario