Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
652
Tıklama
0
Öne Çıkarma
Java yeni öğreniyorum çok basit bi sorum var yardım!
E
13 yıl
Binbaşı
Konu Sahibi

ş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...

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



V
13 yıl
Yüzbaşı

; 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 >
Bu mesaja 1 cevap geldi.
G
13 yıl
Yarbay

== ile olmuyor maalesef. equals() metodunu kullanacaksın.


Bu mesaja 1 cevap geldi.
K
13 yıl
Binbaşı

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.


Bu mesaja 1 cevap geldi.
B
13 yıl
Yüzbaşı

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;
}
}


Bu mesaja 1 cevap geldi.
S
13 yıl
Yüzbaşı

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


Bu mesaja 1 cevap geldi.
G
13 yıl
Yarbay

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.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.