elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 08:37  


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  [Solucionado] Comparar un String con cada una de las partes de otro String
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] Comparar un String con cada una de las partes de otro String  (Leído 1,527 veces)
Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
[Solucionado] Comparar un String con cada una de las partes de otro String
« en: 8 Mayo 2011, 23:29 »

De nuevo el título lo dice todo, necesito comparar un String con cada una de las partes de otro String, el primer String, es simple (una línea sin separadores, ni nada) el segundo String, es una combinación de muchos, separados por un salto de línea (puede poner otro separador diferente, pero para la lectura, resulta mejor el salto de línea), necesito comparar el primer String con cada una de las partes del segundo, es decir, comparar el primer String con cada una de las líneas del segundo String.
Si me pueden ayudar se lo agradezco.
saludos.


« Última modificación: 14 Mayo 2011, 19:03 por Segurida » En línea
Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #1 en: 8 Mayo 2011, 23:48 »

Explicate mostrando como has intentado hacerlo vs, yo por ahora entiendo esto:

string1 = "Federico"

string2 = "Edu\nFederico\nPedro"

El segundo string en realidad lo tendras en algun textbox o donde sea asi:

Edu
Federico
Pedro

Y queres q verifique si el string1 existe en una de esas lineas?


En línea
neoncyber

Desconectado Desconectado

Mensajes: 91



Ver Perfil WWW
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #2 en: 9 Mayo 2011, 01:05 »

Simplemente utiliza el metodo split, que te devolvera un arreglo de cadenas separadas por los caracteres que tu especifiques, luego, empiezas a iterar y comparar.

Esto seria mas facil si tuvieras algo como un StringTokenizer en .net, pero con el metodo Split es mas que suficiente

Este es un metodo de MSDN:

Código
class TestStringSplit
{
   static void Main()
   {
       char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
 
       string text = "one\ttwo three:four,five six seven";
       System.Console.WriteLine("Original text: '{0}'", text);
 
       string[] words = text.Split(delimiterChars);
       System.Console.WriteLine("{0} words in text:", words.Length);
 
       foreach (string s in words)
       {
           System.Console.WriteLine(s);
       }
   }
}
 
 


Saludos
En línea

Código
#!/usr/bin/python
print "Visit:"
print "http:\\donkeysharp.blogspot.com"
 
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #3 en: 9 Mayo 2011, 02:03 »

neoncyber, por que dices que sería más fácil con algo como un StringTokenizer? Tener que crear un objeto más es más sencillo? :silbar:

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

neoncyber

Desconectado Desconectado

Mensajes: 91



Ver Perfil WWW
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #4 en: 9 Mayo 2011, 07:03 »

neoncyber, por que dices que sería más fácil con algo como un StringTokenizer? Tener que crear un objeto más es más sencillo? :silbar:

Saludos

Hola, bueno dije que seria mas sencillo utilizar algo como un StringTokenizer, ya que esta clase en java abstrae y hace el trabajo en este tipo de casos mucho mas facil.

Saludos
En línea

Código
#!/usr/bin/python
print "Visit:"
print "http:\\donkeysharp.blogspot.com"
 
Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #5 en: 9 Mayo 2011, 10:50 »

¿Se puede compara cada parte de un String con cada parte de otro?
es decir;
Código:
String1: uno,dos,tres,cuatro,cinco,seis, etc...
String2: uno,tres,seis,nueve, etc...
comprobar cada parte del primer string con cada parte del segundo, y las coincidencias guardarlas en otro string, para luego poder seguir con otra cosa...
¿se puede hacer?
gracias y saludos.

Edito: @neoncyber ese código no me hace nada, lo he pasasdo a vb 2008, no utilizo c#, pero aún asi, creo que no me funciona por que mi aplicacion no es consola, es un form, seguiré intentado, pero de momento no consiguo que funcione.
gracias y saludos.
« Última modificación: 9 Mayo 2011, 10:51 por Segurida » En línea
neoncyber

Desconectado Desconectado

Mensajes: 91



Ver Perfil WWW
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #6 en: 9 Mayo 2011, 20:41 »

Bueno, obviamente el codigo no funcionara xq es solo un snippet nada mas, solo queria mostrarte una forma para separar cadenas segun los separadores que tu indiques. De este modo en un arreglo a separas elementos de la cadena 1,y en un arreglo b, separas los elementos de la cadena 2 luego puedes seguir el siguiente pseudocodigo

Para cada cadena cadi en arregloA
    Para cada cadena cadj en arregloB
         Si cadi y cady son iguales
             Procesar cadenas como se desee


Saludos
En línea

Código
#!/usr/bin/python
print "Visit:"
print "http:\\donkeysharp.blogspot.com"
 
Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #7 en: 9 Mayo 2011, 23:43 »

¿Pero entonces cómo puedo compararlas parte por parte?
Otra cosa, ¿cómo puedo compararlas y saber cuál es el número de posición del String que ha coincidido? Es decir:
Código:
String1: uno,dos,tres,cuatro,cinco,seis
String2: uno,tres,seis,nueve
comparar cada una de las partes del String1 con cada una de las partes del String2, y por ejemplo (en este caso) coincide en la parte 1 (uno), coincide en la parte 3 del String1 (tres) y en la parte 2 del String2 (tres), cómo podría saber que coinciden en esas partes?
Tengo un código que me trae de cabeza, si con esto no lo consigo, abro un tema nuevo y haber si me pueden dar una mano, porque ya me quedo sin ideas para que funcione, y no hay manera de hacerlo bien...
saludos.
En línea
neoncyber

Desconectado Desconectado

Mensajes: 91



Ver Perfil WWW
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #8 en: 10 Mayo 2011, 00:26 »

Hola, aca te dejo el codigo, lo que hace es recivir dos parametros de entrada con las cadenas que deseas comparar, luego, las separa en un arreglo de cadenas para cada cadena de entrada, luego, va recorriendo y comparando, y muestra las partes iguales, en la linea en la que imprime tu podrias concatenarlas.

Código
Private Shared Sub Comparar(cad1 As String, cad2 As String)
Dim delimiterChars As Char() = {" "C, ","C, "."C, ControlChars.Tab, ControlChars.Lf}
 
 
Dim wordsCad1 As String() = cad1.Split(delimiterChars)
Dim wordsCad2 As String() = cad2.Split(delimiterChars)
System.Console.WriteLine("Las partes que coinciden son:")
 
For Each s1 As String In wordsCad1
For Each s2 As String In wordsCad2
If s1.Equals(s2) Then
System.Console.WriteLine(s1)
End If
Next
Next
End Sub
 

Saludos
En línea

Código
#!/usr/bin/python
print "Visit:"
print "http:\\donkeysharp.blogspot.com"
 
seba123neo


Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #9 en: 10 Mayo 2011, 01:54 »

Hola, mira te paso un metodo de comparacion que es espectacular, lo acabo de descubrir hace poco en una pagina y lo use en mi programa de mostrar los usuarios online de este foro.

[SOURCE] Aplicación para ver los usuarios Online en el foro

te compara 2 arrays y te dice las diferencias entre ellos, te dice los elementos que se mantienen y los que se agregaron. por ejemplo:

Código
Public Class Form1
 
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Dim vLista1() As String = {"123456", "234567", "2233556", "4563434"}
       Dim vLista2() As String = {"123456", "999999", "888888", "4563434"}
 
       Dim vDiferencias = vLista2.Except(vLista1)
       Dim vIguales = vLista2.Intersect(vLista1)
       Dim vEliminados = vLista1.Except(vLista2)
 
       For Each s As String In vDiferencias
           Debug.WriteLine("Nuevos en el segundo array: " & s)
       Next
 
       Debug.WriteLine("")
 
       For Each s As String In vIguales
           Debug.WriteLine("Se repiten en los 2 array: " & s)
       Next
 
       Debug.WriteLine("")
 
       For Each s As String In vEliminados
           Debug.WriteLine("No estan en el segundo array: " & s)
       Next
   End Sub
End Class

saludos.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
neoncyber

Desconectado Desconectado

Mensajes: 91



Ver Perfil WWW
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #10 en: 10 Mayo 2011, 04:49 »

Hola, nunca me habia percatado de la existencia de esos metodos, creo que la solucion de seba123neo se adapta mejor a la necesidad de Segurida, pero para separar en un arreglo las palabras necesriamente deberia utilizar el metodo Split ya que son cadenas. Pero de todos modos seria interesante ver otra alternativa para la separacion de elementos.

Saludos
En línea

Código
#!/usr/bin/python
print "Visit:"
print "http:\\donkeysharp.blogspot.com"
 
[D4N93R]
Moderador
***
Desconectado Desconectado

Mensajes: 1.647


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #11 en: 10 Mayo 2011, 21:06 »

Ya estamos en el 2011!! Usen LINQ por favor!! :P

Un saludo!
En línea

neoncyber

Desconectado Desconectado

Mensajes: 91



Ver Perfil WWW
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #12 en: 10 Mayo 2011, 23:19 »

Creo que pasamos por alto el poder de Linq, pues bueno, el codigo para esto sería asi:
Código
class Program
   {
       static void Main(string[] args)
       {
           string[] array1 = { "1", "2", "3", "6" };
           string[] array2 = { "7", "2", "4", "8" };
 
           ElementosIguales(array1, array2);
 
           Console.Read();
       }
       static void ElementosIguales(string[] array1, string[] array2)
       {
           var result = from x in array1
                        from y in array2
                        where x.Equals(y)
                        select x;
 
           Console.WriteLine("Los elementos iguales son:");
           foreach(var res in result)
               Console.WriteLine(res);
       }
   }
 

Y en vb, lo converti en:
http://www.developerfusion.com/tools/convert/csharp-to-vb/
Y el codigo quedo asi:
Código
Private Shared Sub ElementosIguales(array1 As String(), array2 As String())
Dim result = From x In array1From y In array2 Where x.Equals(y)x
 
Console.WriteLine("Los elementos iguales son:")
For Each res As var In result
Console.WriteLine(res)
Next
End Sub
 

Bueno, eso lo resuelve, y gracias a [D4N93R] por la sugerencia de Linq

Saludos
En línea

Código
#!/usr/bin/python
print "Visit:"
print "http:\\donkeysharp.blogspot.com"
 
Segurida

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Comparar un String con cada una de las partes de otro String
« Respuesta #13 en: 14 Mayo 2011, 18:52 »

Siento no haber podido contestar antes, me ha funcionado, y ademas es rápido comparando strings, es perfecto, muchas gracias a todos :)
saludos
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines