evgeny Skrevet 8. november 2007 Del Skrevet 8. november 2007 Jeg har en streng som ser sånn ut eks: "Petter Nilsen <[email protected]>" Jeg må få ut det som står inne i <> slik at strengen blir "[email protected]" i tilleg må jeg få ut navnet slik at streng2 blir "Petter Nilsen" Noen som kan kjapt fixe for meg? Takk Lenke til kommentar
Manfred Skrevet 8. november 2007 Del Skrevet 8. november 2007 Kan noen fixe for meg? Du regner med at vi bare sitter her for å hjelpe deg så snart du har behov for noe? Les litt om RegEx og løs det selv! Lenke til kommentar
Spartakus Skrevet 8. november 2007 Del Skrevet 8. november 2007 (endret) Du bør ta en titt på disse metodene i String-klassen: - IndexOf - Replace - Split - SubString Du trenger sikkert ikke å bruke alle til det enkle formålet ditt da, men men. string s1 = "Petter Nilsen <[email protected]>"; string[] name_and_email = s1.Split(new string[] { " <", ">" }, StringSplitOptions.RemoveEmptyEntries); Eventuelt "One-liner" som Manfred liker string[] name_and_email = "Petter Nilsen <[email protected]>".Split(new string[] { " <", ">" }, StringSplitOptions.RemoveEmptyEntries); Endret 8. november 2007 av xtc Lenke til kommentar
Manfred Skrevet 8. november 2007 Del Skrevet 8. november 2007 ...eller som sagt RegEx.. Det er dette som blir det rette å bruke for å ekstrahere noe fra en string. å drive med IndexOf, LastIndexOf og slikt er litt grisete, synes jeg. Lenke til kommentar
GeirGrusom Skrevet 8. november 2007 Del Skrevet 8. november 2007 I dette tilfellet er det litt grisete å bruke regex synes jeg da :S public struct UserInfo { private string m_name; private string m_email; public string Name { get { return m_name; } set { m_name = value; } } public string Email { get { return m_email; } set { m_email = value; } } public UserInfo(string name, string email) { m_name = name; m_email = email; } public UserInfo(string source) { int start = source.IndexOf("<"); int end = source.IndexOf(">"); m_name = source.SubStr(0, start).Trim(); m_email = source.SubStr(start + 1, end - start - 1).Trim(); } } Da kan du bare kalle UserInfo info = new UserInfo("Helly Hansen <[email protected]>"); så henter den all relevant informasjon. Lenke til kommentar
j000rn Skrevet 8. november 2007 Del Skrevet 8. november 2007 Noen grunn til at du bruker struct istedenfor class? Lenke til kommentar
GeirGrusom Skrevet 8. november 2007 Del Skrevet 8. november 2007 Ja, fordi det ikke er nødvendig å allokere dette objektet på heap, da det kun inneholder to felt. Men det spørs litt hva det skal brukes til men det er opp til trådstarter. Lenke til kommentar
Manfred Skrevet 8. november 2007 Del Skrevet 8. november 2007 Jeg synes egentlig trådstarter er passe frekk som bare ber noen om å løse det for han. Ikke be om hjelp, eller bli vist i riktig retning, men bare ber noen fikse det for han... Lenke til kommentar
evgeny Skrevet 9. november 2007 Forfatter Del Skrevet 9. november 2007 I dette tilfellet er det litt grisete å bruke regex synes jeg da :S public struct UserInfo { private string m_name; private string m_email; public string Name { get { return m_name; } set { m_name = value; } } public string Email { get { return m_email; } set { m_email = value; } } public UserInfo(string name, string email) { m_name = name; m_email = email; } public UserInfo(string source) { int start = source.IndexOf("<"); int end = source.IndexOf(">"); m_name = source.SubStr(0, start).Trim(); m_email = source.SubStr(start + 1, end - start - 1).Trim(); } } Da kan du bare kalle UserInfo info = new UserInfo("Helly Hansen <[email protected]>"); så henter den all relevant informasjon. Takk for hjelpa :-) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå