Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026

    Confrontare due array C#

    Salve.
    Sto confrontando due array di due stringhe.
    La prima stringa che inserisco e segreta mentre una seconda stringa che inserisco in un secondo momento deve essere confrontata con la prima e dire quali sono le vocali o consonanti che corrispondono.
    C'è qualche metodo di confronto che mi restituisca questa differenza tra la prima e la seconda stringa?
    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Esempio, la stringa s3 conterrà tutte le lettere che sono in comune.

    codice:
    string s = "acdefgimnqrstvz";
    string s2 = "aabbehlolrz";
    string s3 = String.Empty;
    
    foreach (char c in s)
    {
        foreach (char c2 in s2)
        {
            if (c2 == c && !(s3.Contains(c2)))
                s3 += c2;
        }
    }
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Grazie Pirelli72. Funziona!
    Sei sempre mitico.

  4. #4
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Scusa potresti darmi ancora una mano.
    Praticamente da console inserisco una stringa, es.:"porta".
    Poi con degli inserimenti successivi di caratteri, anche non in maniera ordinata, devo rimettere a posto questi caratteri nella sequenza della prima stringa inserita.
    Quindi se come prima stringa "porta" ed inserisco 'a' poi 'r', questi devono formarsi in sequenza giusta, quindi "_ _ r _ a", anche senza spazi va più che bene.
    C'è qualche metodo che possa far questo, o bisogna costruirsi dei cicli di confronto, che al momento sono scarso.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    93
    codice:
    string1 = "porta"; 
    string2 = "ra"; 
    stringfinale = "-----";  
    for (int i =0; i < string2.Lenght; i++) 
    {       
           for (int j =0; j < string1.Lenght; j++)      
           {              
                 if (string2[i]==string1[j]) stringfinale[j]=string2[i];      
           } 
    }

  6. #6
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Ciao ratal.
    Ho provato a far girare la tua applicazione solo che mi da errore sul vettore della "stingafinale[j]" :
    codice:
               string string1 = "porta";
               string string2 = "ra";
               string stringfinale = "-----";
                for (int i = 0; i < string2.Length; i++)
                {
                    for (int j = 0; j < string1.Length; j++)
                    {
                        if (string2[i] == string1[j])
                            stringfinale[j] = string2[i];
                    }
                }
                Console.WriteLine(string1);
                Console.WriteLine(string2);
                Console.WriteLine(stringfinale);
    L'errore che genera è questo:
    Errore 1 Impossibile assegnare un valore alla proprietà o all'indicizzatore 'string.this[int]' perché è in sola lettura

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    93
    eh si perchè le stringhe sono in sola lettura.l'ho fatto alla carlona giusto per darti un idea.
    prova a mettere stringfinale.Insert(j,string2[i]) al posto di quella riga in cui ti da errore.
    per capirci trasforma cosi il ciclo for

    for (int j = 0; j < string1.Length; j++)
    {
    if (string2[i] == string1[j])
    stringfinale.Insert(j,string2[i]);
    }

  8. #8
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Ciao ratal.
    Ora mi da il seguente errore:
    Errore 2 Argomento '2': impossibile convertire da 'char' a 'string'

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    93
    dovrei provare nn ricordo bene la manipolazione delle stringhe...prova con questo (sempre al posto di quella riga).

    stringfinale.Replace(stringfinale[j].ToString(),string2[i].ToString());

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.