Thread View: be.comp.programming
4 messages
4 total messages
Started by Obsession
Sun, 03 Nov 2002 22:35
"simpel' vraagske ivm java
Author: Obsession
Date: Sun, 03 Nov 2002 22:35
Date: Sun, 03 Nov 2002 22:35
23 lines
1718 bytes
1718 bytes
Ik wil een cijfer van de console lezen via System.in.read()
als ik het volgende doe:
...
int x;
x=System.in.read();
// volgens de help returns deze functie een int, als ik 5 intik krijg ik 53
terug, nu zou ik die 5 willen hebben, niet die 53, das de ascii waarde als
ik mij goed herinner. Ik heb deze nodig in een while lus
while(x>0)
{ x--; nf=nf*x; }
// nu loopt deze lus 53 keer, ik moet die maar 5x hebben
Ik heb al vanalles geprobeert, de variabele x als char nemen, een long
variabele en dan l=(long)(char)x;
maar wat ik ook probeer ik slaag er maar niet in om die '5' om te zetten in
5.
als iemand mij hierbij zou kunnen helpen.
bedankt
Re: "simpel' vraagske ivm java
Author: bomberboy
Date: Sun, 03 Nov 2002 23:04
Date: Sun, 03 Nov 2002 23:04
32 lines
2213 bytes
2213 bytes
Obsession wrote: > Ik wil een cijfer van de console lezen via System.in.read() als ik het > volgende doe: > ... > int x; > x=System.in.read(); > // volgens de help returns deze functie een int, als ik 5 intik krijg ik > 53 terug, nu zou ik die 5 willen hebben, niet die 53, das de ascii > waarde als ik mij goed herinner. Ik heb deze nodig in een while lus Je leest hier rechtstreeks van een inputStream. Je moet daar eerst nog een Reader rondwrappen, een InputStreamReader in dit geval. En daarrond nog een BuffferedReader is ook geen slecht idee. Dan krijg je iets als BufferedReader kb = new BufferedReader(new InputStreamReader(System.in)); En dan kan je van kb (keyboard) inlezen, bv met readLine() int x = Integer.parseInt(kb.readLine); De static methode parseInt is nog nodig om van de ingelezen String (readLine returnt een String) een integer te maken. De reden dat jij 53 kreeg was omdat je rechtstreeks van de InputStream las, en je dus bytes terugkreeg, niet ge�nterpreteert als chars. (zo ongeveer) -- Bruno
Re: "simpel' vraagske ivm java
Author: Tolle
Date: Mon, 04 Nov 2002 21:43
Date: Mon, 04 Nov 2002 21:43
12 lines
1710 bytes
1710 bytes
> Ik wil een cijfer van de console lezen via System.in.read() ... > x=System.in.read(); > // volgens de help returns deze functie een int, als ik 5 intik krijg ik > 53 terug, nu zou ik die 5 willen hebben, niet die 53, das de ascii > waarde als ik mij goed herinner. Ik heb deze nodig in een while lus > Even een bijvraag, als je slechts 1 getal (tussen 0 en 9) in wil lezen en van de bekomen waarde 48 aftrek (ascii enzo...) krijg je dan gezeik met de compatibiliteit onder andere VM's ? (zoals die voor de mac?) Tolle.
Re: "simpel' vraagske ivm java
Author: Slayerke
Date: Mon, 04 Nov 2002 22:49
Date: Mon, 04 Nov 2002 22:49
23 lines
2197 bytes
2197 bytes
Tolle wrote: >> Ik wil een cijfer van de console lezen via System.in.read() ... >> x=System.in.read(); >> // volgens de help returns deze functie een int, als ik 5 intik krijg ik >> 53 terug, nu zou ik die 5 willen hebben, niet die 53, das de ascii >> waarde als ik mij goed herinner. Ik heb deze nodig in een while lus >> > Even een bijvraag, als je slechts 1 getal (tussen 0 en 9) in wil lezen en > van de > bekomen waarde 48 aftrek (ascii enzo...) krijg je dan gezeik met > de compatibiliteit onder andere VM's ? (zoals die voor de mac?) > Nee want java werkt overal intern met unicode, je zou dus eigenlijk perfect van dat ingelezen getal (int)'0' kunnen aftrekken en dan zou je inderdaad een getal tussen 0 en 9 krijgen. Die code is dan wel totaal niet uitbreidbaar, stel dat je opeens toch 10 moet kunnen inlezen, en je moet dan zelf nog controleren of de gebruiker wel effectief iets tussen 0 en 9 heeft ingevoerd, en bvb niet een letter. Integer.parseInt doet dat allemaal voor u. -- Groeten, Slayerke
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads