[Çözüldü] Java Scanner Hata

Başlatan srgnaras, 12 Ekim 2013 - 11:32:31

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

srgnaras

package console;

import java.util.Scanner;

public class hosgeldiniz {
static String adi;
public static void main(String[] args){
@SuppressWarnings("resource")
Scanner s1 = new Scanner(System.in);
System.out.print("Kullanıcı Adını Girin : ");
adi = s1.next();


if(adi == "srgn"){
System.out.print("Hoşgeldin " + adi);
}
else{
System.out.print("Kullanıcı adı veya parola hatalı ");
}
}

}

çıktısı
Kullanıcı Adını Girin : srgn
Kullanıcı adı veya parola hatalı

Scanner sınıfında bir hata yaptığımı düşünüyorum ama bulamıyorum yardımcı olabilecek var mı ?
En zengin insan en güçlü arkadaşlara sahip insandır.

Yedionbir

* ilkel tipler örneğin int değişkenlerin eşitliği == ile kontrol edilir
* fakat string referans tip olduğu için ilkel tiplerle karıştırılmamalı
* String değişkenlerin eşitlik kontrolü için .equals() metodu kullanılmalı
* bu yüzden if koşulunuzu değiştirmelisiniz

yani kodunuz şu şekilde olmalı;

package console;

import java.util.Scanner;

public class hosgeldiniz {
static String adi;
public static void main(String[] args){
@SuppressWarnings("resource")
Scanner s1 = new Scanner(System.in);
System.out.print("Kullanıcı Adını Girin : ");
adi = s1.next();


if(adi.equals( "srgn")){                  // Stringler == ile degil .equals() ile kontrol edilir
System.out.print("Hoşgeldin " + adi);
}
else{
System.out.print("Kullanıcı adı veya parola hatalı ");
}
}

}

srgnaras

@Yedionbir teşekkürler == C# ve VB den kalma bir alışkanlık. Tekrar teşekkür ediyorum.
En zengin insan en güçlü arkadaşlara sahip insandır.