Şimdi Ara

Java yeni öğreniyorum çok basit bi sorum var yardım!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
7
Cevap
0
Favori
665
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • şimdi 1-2 gün oldu başlayalı da uzatmadan soruma geçim. String ile if'i birlikte kullanırken işin içine kullanıcıyı sokunca problem yaşadım. şöyle anlatayım. şu kodlamayı yapınca istediğim oluyor:

    String isim;
    isim = "Efe";
    if(isim == "Efe")
    System.out.print("asdasdas")

    bu şekilde sorunsuz bir şekilde yazıyı görebiliyorken:

    String isim;
    isim = scan.nextLine();
    if(isim == "Efe")
    System.out.print("asdasdas")

    bu şekilde ismi Efe yazdığım taktirde ( büyük küçük harfe dikkat ediyorum) yazı gözükmüyor. Gözükmemesi için bi neden göremiyorum. Ya da bunun farklı bi yöntemi mi var kullanıcıdan cevap alıyorsam. java kütüphanesinden de scanner import edili tabiki Scanner scan = new Scanner(System.in); komutum da var. zaten öyle olmasa cevap da veremezdim kullanıcı olarak nese öyle işte...







  • ; bunu unutmuşun ondan yazdırmıyor



    < Bu mesaj bu kişi tarafından değiştirildi Video Tapes -- 12 Ağustos 2012; 23:47:17 >
    _____________________________
  • == ile olmuyor maalesef. equals() metodunu kullanacaksın.
  • Ben de javaya ilk başladığım günlerde stringlerin aynı olup olmadığını == karakteriyle çözmeye çalışıyordum. Sanırım herkesin yaptığı bir hatadır.
    _____________________________
  • Java nın temeline inersek eğer ( bana göre hatalı bir yaklaşımdır ) hem primitive ( ilkel ) değişkenler hem de objeler mevcut.
    ilkel değişkenleri ( int, double, long vs. vs. ) "==" operatörü ile karşılaştırabilirsiniz fakat java.lang.Object nesnesinden türeyen nesnesler için equals fonksiyonu kullanılmalıdır.

    Ha derseniz equals fonksiyonu ne yapar ne eder derseniz, eğer o da override edilmemişse nesnenin hashCode una bakar. Örnek vermek gerekirse elimizde "id" ve "name" diye iki degiskeni olan bir obje olsun. aşağıdaki gibi.

    public class Sample {

    int id;
    String name;

    }


    eğer bu sample cinsinden iki nesne yaratır ve karşılaştırırsak equals methodunun doğru ( true ) dünmesi için iki nesnenin de "id" ve "name" değerleri eşit olmalıdır. Fakat dersek ki "id leri eşit ise ikisi de aynı obje sayılsın ben öyle istiyorum". işte o zaman equlas ve hashcode metodlarını aşağıdaki gibi override etmeliyiz. Bu arada apache nin commons-lang kütüphanesine ait HashCodeBuilder ve EqualsBuilder.


    @Override
    public int hashCode() {
    return new HashCodeBuilder(17, 31). //rastgele farklı iki asal sayı
    append(id).
    toHashCode();
    }

    @Override
    public boolean equals(final Object obj){
    if(obj instanceof Bean){
    final Bean other = (Bean) obj;
    return new EqualsBuilder()
    .append(id, other.id)
    .isEquals();
    } else{
    return false;
    }
    }
    _____________________________




  • quote:

    Orijinalden alıntı: bestanealtcizgi

    Java nın temeline inersek eğer ( bana göre hatalı bir yaklaşımdır ) hem primitive ( ilkel ) değişkenler hem de objeler mevcut.
    ilkel değişkenleri ( int, double, long vs. vs. ) "==" operatörü ile karşılaştırabilirsiniz fakat java.lang.Object nesnesinden türeyen nesnesler için equals fonksiyonu kullanılmalıdır.

    Ha derseniz equals fonksiyonu ne yapar ne eder derseniz, eğer o da override edilmemişse nesnenin hashCode una bakar. Örnek vermek gerekirse elimizde "id" ve "name" diye iki degiskeni olan bir obje olsun. aşağıdaki gibi.

    public class Sample {

    int id;
    String name;

    }


    eğer bu sample cinsinden iki nesne yaratır ve karşılaştırırsak equals methodunun doğru ( true ) dünmesi için iki nesnenin de "id" ve "name" değerleri eşit olmalıdır. Fakat dersek ki "id leri eşit ise ikisi de aynı obje sayılsın ben öyle istiyorum". işte o zaman equlas ve hashcode metodlarını aşağıdaki gibi override etmeliyiz. Bu arada apache nin commons-lang kütüphanesine ait HashCodeBuilder ve EqualsBuilder.


    @Override
    public int hashCode() {
    return new HashCodeBuilder(17, 31). //rastgele farklı iki asal sayı
    append(id).
    toHashCode();
    }

    @Override
    public boolean equals(final Object obj){
    if(obj instanceof Bean){
    final Bean other = (Bean) obj;
    return new EqualsBuilder()
    .append(id, other.id)
    .isEquals();
    } else{
    return false;
    }
    }

    naptın sen hocam
    _____________________________




  • Java gibi dillerde programcının eline yeterince imkan verilmediği için her yapmak istediğimiz şeyde kütüphanelerle, sınıflarla, metodlarla boğuşmak zorunda kalıyoruz. C++ ta yukarıdaki örneklerdeki gibi işlemler çocuk oyuncağıdır, hiçbir harici koda ihtiyacınız yoktur. Birde c++ a zor derler.

    Geçen javada bir nesnenin uzunluğunu (bellekte kapladığı alan) öğrenmeye ihtiyaç duydum. Bir bakayım dedim javada nasıl oluyor diye, verilen örneği görünce başka bir yol aramaya karar verdim.
  • Yapay Zeka’dan İlgili Konular
    Aklımda bi uygulama fikri var
    11 ay önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.