Avatar billede r.hegaard Nybegynder
17. september 2004 - 14:01 Der er 11 kommentarer og
2 løsninger

Convertere mellem diverse variabler

Er der nogen, som kender en god side, hvor man overskueligt kan se metoder til at convertere mellem diverse forskellige variabler ??
F.eks.:
char -> String
char -> int
char -> double
String -> int
String -> double
Gerne med mange flere.
Avatar billede martinbk Nybegynder
17. september 2004 - 14:10 #1
arne_v har skrevet en ganske udemærket artikkel om emnet den kan findes her -> http://www.eksperten.dk/artikler/141
Avatar billede arne_v Ekspert
17. september 2004 - 14:41 #2
:-)
Avatar billede r.hegaard Nybegynder
17. september 2004 - 15:12 #3
Det ser meget fint ud, men jeg tror desværre ikke alle sammen lige er den form for konvertering jeg tænker på. Hvis jeg f.eks. har en char, som er '1', så skal jeg gerne have den lavet om til en int, som er 1. Umiddelbart kan jeg ikke se denne form for konvertering i listen. Kender I evt. andre sider ??
Avatar billede arne_v Ekspert
17. september 2004 - 15:19 #4
String -> int
String -> double

er der

char->String

String s = Character.toString(c);

char->int (din måde) = char->String->int

int v = Integer.parseInt(Character.toString(c));

eller mere low level

int v = (int)c - (int)'0';

char->double (din måde)

samme som char->int
Avatar billede r.hegaard Nybegynder
17. september 2004 - 15:33 #5
Jeg har tidligere prøvet med linien:
int v = Integer.parseInt(Character.toString(c));
men min compiler giver fejl med det.

Hvis jeg f.eks. skriver følgende:
  String test = "12345";
  char test2 = test.charAt(2);
  int v = Integer.parseInt(Character.toString(test2));
så skriver min compiler:
  cannot resolve symbol
  symbol  : method toString (char) location: class java.lang.Character

Er der noget galt med min compiler ??
Avatar billede r.hegaard Nybegynder
17. september 2004 - 15:37 #6
Men den anden måde virker fint både med linien:
  int v = (int)c - (int)'0';
og med:
  int v = (int)c;
Virker det nederste linie ikke altid ??
Avatar billede arne_v Ekspert
17. september 2004 - 15:38 #7
Ikke noget galt.

Den er bare gammel.

Den metode blev tilføjet i 1.4 !
Avatar billede arne_v Ekspert
17. september 2004 - 15:39 #8
Du bør kunne bruge:

int v = Integer.parseInt("" + c);

i Java 1.3
Avatar billede arne_v Ekspert
17. september 2004 - 15:39 #9
int v = (int)c - (int)'0';

laver din konvertering d.v.s. at '1' bliver 1

int v = (int)c;

laver en normal konvertering d.v.s. at '1' bliver til 48
Avatar billede arne_v Ekspert
17. september 2004 - 15:40 #10
ikke 48 men 49
Avatar billede r.hegaard Nybegynder
18. september 2004 - 22:12 #11
Tak for hjælpen. Lægger I lige et svar ??
Avatar billede arne_v Ekspert
18. september 2004 - 22:13 #12
svar
Avatar billede martinbk Nybegynder
19. september 2004 - 22:58 #13
selvom jeg ikke har bidraget med det vilde kan jeg da godt smide et svar
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