import java.util.Scanner; public class deneme{ public static void main(String args[]) { Scanner sc = new Scanner(System.in); String x = sc.next(); if(x=="enter") System.out.print("True"); } }
arkadaşlar kod bu. enter yazıp tıkladığım zaman true yazdırmıyor. acaba sebebi nedir yardımcı olursanız çok makbule geçer.
import java.util.Scanner; public class deneme{ public static void main(String args[]) { Scanner sc = new Scanner(System.in); String x = sc.next(); [b]if(x.equals("enter"))[/b] System.out.print("True"); } }
olarak kullanınca sorun çözüldü ama neden böyle olması gerektiğini anlamadım. Neyse sonuçta sorun çözüldü. Sağolasın yine de.
string ifadeleri eşitlerken equals komutunu kullanıyoruz.ilk başlayan herkes bu durumu yaşamıştır.iyi çalışmalar.
Sanırım Java değişkenlerde bir index sistemi kullanıyor iki tane "asd" değerli değişkeni == operatörü eşit değil gibi görüyor. İlginç birşey doğrusu ben de karıştırmıştım başta.
equals referans aldığı değişkeni ele alırken.== tamamen aynı değişkenin ele alır. Kaynak
bu ne javada olmayan operatör overloading ile ne de referans kıyaslaması ile alakalı değildir. ( string birleştirme için geçerli değil bu söylediğim )
c# da bildiğim kadarı ile primitif tip değişkenler yok, herşey nesne ( yanılıyor olabilirim, gerçekten C# bilen birileri yanılıyorsam düzeltsin lütfen ) bu yüzden bütün nesneler yanı şekilde karşılaştırılır ( "==" operatörü "equals" ı override etmiştir )
javada ise primitif tipler vardır int, long, double gibi. bu tipler java.lang.Object temel nesnesinden türemediği için doğal olarak içlerinde equals metodu barındırmazlar ve karşılaştırmak için "==" operatörü kullanılır. String ise bütün objeler gibi java.lang.Object ten türemiştir, bu yüzden karşılaştırmak için equals metodu kullanmak gerekir. Kısmen haklı olduğunuz gibi eğer java da operatör overloading vm seviyesinde değil de kodlama seviyesinde de mümkün olsaydı string equals metodunu "==" operatörü ile overload edebilir ve bu şekilde de karşılaştırabilirdik. ( C# da olduğu gibi )
arkadaşlar kod bu. enter yazıp tıkladığım zaman true yazdırmıyor. acaba sebebi nedir yardımcı olursanız çok makbule geçer.