Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C#] Lavorare su stringhe e metodo split

    Salve a tutti,
    avrei qualche dubbio sul metodo split, su internet ho trovato il seguente esempio:

    codice:
    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);
            }
        }
    }
    che dovrebbe dare il seguente output
    codice:
    Original text: 'one     two three:four,five six seven'
    7 words in text:
    one
    two
    three
    four
    five
    six
    seven
    non mi raccapacito però come ha fatto a separare one da two e come ha fatto ad eliminare la t di troppo, perchè il primo separatore che indica è lo spazio. Forse è un errore di battitura?

    Altra cosa che volevo chiedere è a me nella stringa ci saranno o parole, più che altro sigle del tipo "s_02" o date in formato data+ora o numeri. C'è qualche funzione del tipo "isdate" o del tipo "isinteger" o "isstring" ?

    La stringa che andrò a dividere è questa:
    codice:
    ~22/07/1987 10:00:00#2#s_00#100#54#78#87#85#174#54#65#6#5#s_01#25#26#25#24#20~
    e a seconda di cosa c'è scritto ,che sia una data, un intero o una stringa dovrò andare a salvare ovviamente le informazioni in una variabile apposta.

    Vi ringrazio in anticipo,
    Neptune.
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  2. #2
    Domanda: anche qui come in Java se faccio stringa1= stringa2 non faccio altro che creare un alias?

    Se voglio fare che stringa1 sia una vera e propria copia di stringa2 in modo che quando faccio lo split su stringa1 non mi tocchi stringa2 come posso fare?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Re: [C#] Lavorare su stringhe e metodo split

    Originariamente inviato da Neptune
    non mi raccapacito però come ha fatto a separare one da two
    I testi one e two sono separati da una tabulazione (\t), che è uno dei caratteri specificati nella chiamata a Split.

    Originariamente inviato da Neptune
    e come ha fatto ad eliminare la t di troppo
    Non esiste alcuna "t" di troppo: è una sequenza di escape, il carattere è \t.

    Originariamente inviato da Neptune
    Altra cosa che volevo chiedere è a me nella stringa ci saranno o parole, più che altro sigle del tipo "s_02" o date in formato data+ora o numeri. C'è qualche funzione del tipo "isdate" o del tipo "isinteger" o "isstring" ?
    Devi tentare di fare il "parsing" del valore usando i metodi DateTime.Parse(), Int32.Parse() e così via.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Neptune
    Domanda: anche qui come in Java se faccio stringa1= stringa2 non faccio altro che creare un alias?
    Sì. Non fai altro che associare a una variabile lo stesso riferimento all'oggetto "stringa" contenuto nell'altra.

    Originariamente inviato da Neptune
    Se voglio fare che stringa1 sia una vera e propria copia di stringa2 in modo che quando faccio lo split su stringa1 non mi tocchi stringa2 come posso fare?
    Non c'è bisogno di fare alcuna copia: le stringhe sono immutabili nel .NET CLR, quindi ogni operazione che genera una stringa differente dall'originale da luogo alla creazione automatica di un nuovo oggetto System.String.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.