Avatar billede kurtcago Nybegynder
30. maj 2001 - 00:23 Der er 11 kommentarer og
1 løsning

Hvordan konverterer man et char til en string

...og hvordan konverter man et integer til en string
Avatar billede nuno Nybegynder
30. maj 2001 - 00:40 #1
var howMany=10
alert(\"howMany.toString() is \" + howMany.toString())

altså - 10 bliver lavet om til en streng

kilde: developer.netscape.com

/nuno
Avatar billede nuno Nybegynder
30. maj 2001 - 00:58 #2
nååh hov - ikke javascript men java i see...... men så er det stadig

dinVariabel.toString()

...så vidt jeg husker :)


/nuno
Avatar billede birkis Nybegynder
30. maj 2001 - 09:51 #3
I alm. Java:

char til String:  \"\" + dinchar

int til String:  \"\" + dinint


Eksempel:

public class Konvertering {
    public static void main (String args[]) {
        int tal = 5;
        char karakter = \'a\';

        String tekst1 = \"\" + tal;
        String tekst2 = \"\" + karakter;

        System.out.println(tekst1);
        System.out.println(tekst2);
    }
}
Avatar billede agermose Nybegynder
30. maj 2001 - 10:17 #4
Integer.toString(myInt);

hvis det er en Integer (modsat int) er der allerede svaret rigtigt (nuno):

myInteger.toString();

Jeg vil tillade mig at sige at

String tekst1 = \"\" + tal;

1) er grim kode (men det er smag og behag)
2) dårlig kode, der i hovedsagen er ineffektiv med mindre compileren fanger hvad meningen er.
Avatar billede birkis Nybegynder
30. maj 2001 - 10:31 #5
agermose >> \"hvis det er en Integer (modsat int) er der allerede svaret rigtigt (nuno)...\"

Hva så hvis han mener en alm. int?

Jeg gidder ikke diskutere om String tekst1 = \"\" + tal; er grim kode - det er den eneste jeg kjenner (og antagelig også den nemmeste).

Compileren jeg bruker er Suns jdk 1.3.0_02, og den fanger meningen utmerket.
Avatar billede agermose Nybegynder
30. maj 2001 - 10:40 #6
nå, nej, nej, det var ikke for at starte en diskussion om grim/pæn kode...

hvis man har en int, er det

String str = Integer.toString(myint);

mit punkt 2) Her er det ikke spørgsmålet om compileren godtager det, men om den kan optimere det.

Problemet med String tekst = \"\" + tal;

er, at det faktisk bliver lavet om til:

Stringbuffer sb = new StringBuffer();
String tmp1 = \"\";
String tmp2 = Integer.toString(tal);
sb.append(tmp1);
sb.append(tmp2);
String tekst = sb.toString();

Det er altså ikke særlig smart, med mindre compileren genkender hack\'et og direkte indsætter \"den rigtige\":

String tekst = Integer.toString(tal);

Man ser tit den der \"\" + tal, og det er oplagt at compileren kan kigge efter dem, men det kan man bare ikke gå ud fra, og jeg synes lige jeg ville gøre opmærksom på hvad der sker.
Avatar billede birkis Nybegynder
30. maj 2001 - 10:41 #7
agermose >> Hvis vet en bedre kode enn String tekst1 = \"\" + tal;, vil jeg gjerne høre - jeg er langt fra ferdig utdannet i Java.

:)
Avatar billede birkis Nybegynder
30. maj 2001 - 10:44 #8
nå, ok...  Jeg fikk visst svar.

Jeg vet ikke hvordan Suns compiler gjør det, men jeg ser godt at det ikke er optimalt hvis den må gjennom Stringbuffer...
Avatar billede agermose Nybegynder
30. maj 2001 - 10:47 #9
vi bliver aldrig færdig uddannet i Java! Der sker for meget og noget nyt hele tiden.
Avatar billede birkis Nybegynder
30. maj 2001 - 11:07 #10
agermose >> Et spm til:  Integer.toString(myint); går jo også gjennom noen linjer kode ( toString() )?  _Er_ det egentlig mer optimert enn \"\" + myint??
Avatar billede birkis Nybegynder
30. maj 2001 - 11:16 #11
nååh...  Det er den selvfølgelig, fordi \"\" + myint også kaller Integer.toString(myint)...

Har jeg forstått det da?
Avatar billede agermose Nybegynder
30. maj 2001 - 11:23 #12
Den konvertering fra en int til en string der foregår ved en Integer.toString() kan man ikke komme uden om. Pointen er bare at det også er et skridt i \"\" + myint, men at der ved den sidste også foregår en del andre ting. Jeg mener, som skrevet, at \"\" + myint, uoptimeret bliver noget i retning af de 6 statements bygget op omkring en stringbuffer. Statement 3 er nettop Integer.toString(), hvorfor de andre må siges at være spildt.

Og ja, StringBuffer har en append(int) - men mon ikke den svare til append(Integer.toString(int));

Der findes dokumentation, der præcist beskriver hvad der bliver lavet om til hvad. Jeg er ikke bekendt med alle detaljer heri!
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