Avatar billede mjense173 Nybegynder
30. oktober 2004 - 18:41 Der er 16 kommentarer og
1 løsning

Format streng telefonnummer

Jeg har nogle telefonnumre som har mange forskellige formater, eks:

1234 5678
12 34 56 78
12 345 678
osv.
Hvordan laver jeg så et format af dem, ved hjælp af string.Format() metoden?

De skal skrives som 12345678.
Avatar billede mjense173 Nybegynder
30. oktober 2004 - 18:41 #1
Jeg kunne naturligvis bare lave en søg-erstat af mellemrum, men jeg skal også bruge det til andre formater..
Avatar billede arne_v Ekspert
30. oktober 2004 - 18:48 #2
Der er vist ikke andet at gøre end at fjerne mellemrummene (Replace) og
så hvis nødvendigt dele op igen (Substring).
Avatar billede mjense173 Nybegynder
30. oktober 2004 - 18:59 #3
Hvordan laver man en normal replace.
Jeg kan kun finde en Replace(string oldValue,string newValue)

Men hvor skal man angive hvilken streng, man vil arbejde i?
Avatar billede arne_v Ekspert
30. oktober 2004 - 19:00 #4
Det er en metode på string objektet.

Altså:

s = s.Replace(" ","")
Avatar billede mjense173 Nybegynder
30. oktober 2004 - 19:10 #5
Ja, præcis

Hvorfor kan man så ikke skrive:

int t = Convert.ToInt32(s);

og altså få en integer med værdien: 12345678 ?
Avatar billede arne_v Ekspert
30. oktober 2004 - 19:12 #6
Det kan du vel efter replace ?
Avatar billede arne_v Ekspert
30. oktober 2004 - 19:14 #7
string s = "12 34 56 78";
        Console.WriteLine(Convert.ToInt32(s.Replace(" ","")));
        Console.WriteLine(Convert.ToInt32(s));

giver hos mig:

12345678

Unhandled Exception: System.FormatException: Input string was not in a correct format.
Avatar billede mjense173 Nybegynder
30. oktober 2004 - 19:33 #8
Nej, sært nok får jeg hele tiden en fejl:

"Input string was not in a correct format."

Kode:

private void trimTlf(string telefon){
  telefon = telefon.Replace(" ","");
  inttlf  = Convert.ToInt32(s);
}

Den går galt i den linje, hvor den laver en convert.

Jeg kan bare ikke se hvad der er galt?
Avatar billede mjense173 Nybegynder
30. oktober 2004 - 19:33 #9
Husk lige at smide et svar, så du kan få point for ovenstående.
Avatar billede arne_v Ekspert
30. oktober 2004 - 19:34 #10
private void trimTlf(string telefon){
  telefon = telefon.Replace(" ","");
  inttlf  = Convert.ToInt32(s); // <---- hvad er s ?
}
Avatar billede arne_v Ekspert
30. oktober 2004 - 19:34 #11
et svar
Avatar billede mjense173 Nybegynder
30. oktober 2004 - 19:39 #12
s er telefon, havde glemt at rette det.
Avatar billede mjense173 Nybegynder
30. oktober 2004 - 19:48 #13
Har du en idé om hvad der går galt?
Avatar billede arne_v Ekspert
30. oktober 2004 - 19:57 #14
Er du sikker på at det er der det går galt ?

(husk at telefon er tilbage til det gamle når den metode returnerer !!)
Avatar billede mjense173 Nybegynder
30. oktober 2004 - 20:02 #15
Ja, den siger fejl, når den prøver at køre denne linje:

int inttlf  = Convert.ToInt32(telefon);

og ifølge mine tests, så er telefon både en string, og den består af 8 tal.
Avatar billede arne_v Ekspert
30. oktober 2004 - 20:07 #16
using System;

class MainClass
{
    private static void trimTlf(string telefon){
          telefon = telefon.Replace(" ","");
        Console.WriteLine("telefon=#" + telefon + "#");
          int tlf  = Convert.ToInt32(telefon);
        Console.WriteLine("tlf=" + tlf);
    }
    public static void Main(string[] args)
    {
        string telefon = "12 34 56 78";
        trimTlf(telefon);
        Console.WriteLine("telefon=#" + telefon + "# <-----");
    }
}

giver:

telefon=#12345678#
tlf=12345678
telefon=#12 34 56 78# <-----
Avatar billede mjense173 Nybegynder
30. oktober 2004 - 21:48 #17
Ja, du har ret, det havde jeg glemt.

Tak for det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester