Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: java ongelma

gyperfox [24.04.2005 13:02:22]

#

Java ei ole vahvin alueeni, kuten koodista varmaan huomaa.
----------------------------------------------------------

import java.io.*;
 public class testi {
 	public static void main(String[] args) {

	 	String vastaus;
		int a,b;


		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
 		try
 		{
	 	a = 2;
		b = 5;

		System.out.print("Anna merkkijono: ");
 		vastaus = in.readLine();

		System.out.println(vastaus);

		if (a == vastaus) {
         		System.out.println("oikein"); }
       	else {
         		System.out.println("vaarin"); }

 		}
 		catch (Exception e)
 		{
 			System.out.println("Virhe");
 		}

        }

 }

---------------------------------------------------------
Eli tossa if lauseessa tulee virhe: operator == cannot be applied to int,java.lang.String
Mutta jos tossa if lauseessa olisi a == b, niin se toimii.

Eli IF lause ei tykkää käsitellä stringejä, miten ton pystyy korjaamaan?

sqwiik [24.04.2005 13:15:36]

#

Et pysty vertailemaan kahta täysin erilaista muuttujatyyppiä (string (merkkijono), int (kokonaisluku)). Muunna ensin string kokonaisluvuksi ja suorita vertailu sitten.
Muunnos suoritetaan Integer-luokalla:

if(a == Integer.parseInt(vastaus)){...

Tuo parseInt nostaa kuitenkin poikkeuksen, mikäli sille syötettävä merkkijono ei sisällä lukua.

gyperfox [24.04.2005 13:59:11]

#

Joo nyt toimii. Kiitos

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta