C# String Compare

TP Okuru

Kilopat
Katılım
20 Aralık 2014
Mesajlar
568
Çözümler
7
Yer
Trabzon
Yapmak istediğim şey 'mail' değişkeni '@' işaretini içeriyorsa bana false değer döndüren bir kod.

Böyle yaptım (string.Compare(mail,"@")==0) ama bu kod True değer döndürüyor. Bana İçeriyorsa False değer getirmesi lazım.
Yardımcı olabilecek var mı?
 
Olur mu bilemiyorum ama "(string.Compare(mail,"@")==0)" kodunu yazınca true değer dönüyorsa sizde (string.Compare(mail,"@")!=0) yapın.
 
Olur mu bilemiyorum ama "(string.Compare(mail,"@")==0)" kodunu yazınca true değer dönüyorsa sizde (string.Compare(mail,"@")!=0) yapın.
String.compare dediğiniz gibi çalışmıyor. -1 0 +1 değerleri var ve false değer vermiyor.

Tam kodu atabilirseniz daha güzel olabilir. Böyle tam aklımda canlandıramadım.
Adsız.png

Tam kod böyle. Kayıt ol butonuna bastığımda if içerisindeki kontrolleri bitirip sorun yok ise veri tabanına kullanıcıyı kaydedecek. IF'in içi komple olumsuz değer getiriyor. Mail karşılaştırması hariç.
Tek IF ile yapmam lazım çünkü bağlantı.open(); sorun çıkartıyor.

o yüzden mail değişkeni içinde @ var ise false değer getiren bir karşılaştırma yapmam gerekiyor.
umarım anlatabilmişimdir.

Karşılaştırdğım şeyler girilen iki şifre eşit olacak, hiçbir alan boş bırakılmayacak ve mail içinde @ olacak.
 
// string type
String str = "GeeksforGeeks";
String substr1 = "for";
String substr2 = "For";

// using String.Contains() Method
Console.WriteLine(str.Contains(substr1));

// Here case-sensitive comparision
// And substr2 value is 'For'
// So its return false
Console.WriteLine(str.Contains(substr2));

Console.WriteLine(str.Contains(substr1)) --->>> TRUE
Console.WriteLine(str.Contains(substr2)) --->>> FALSE

Kodları incele.
 
Yapmak istediğim şey 'mail' değişkeni '@' işaretini içeriyorsa bana false değer döndüren bir kod.

Böyle yaptım (string.Compare(mail,"@")==0) ama bu kod True değer döndürüyor. Bana İçeriyorsa False değer getirmesi lazım.
Yardımcı olabilecek var mı?

C#:
        bool deger;
        string a = "n@yeon";
        for(int i=0; i<a.Length; i++)
        {
            if(a[i] == '@')
            {
                deger = false;
                Console.Write(deger.ToString());
            }
        }
 
Yapmak istediğim şey 'mail' değişkeni '@' işaretini içeriyorsa bana false değer döndüren bir kod.

Böyle yaptım (string.Compare(mail,"@")==0) ama bu kod True değer döndürüyor. Bana İçeriyorsa False değer getirmesi lazım.
Yardımcı olabilecek var mı?

True değeri if döngüsü içinde ayrı bir integer atayarak, o ayrı integer değerini eğer çıktı 1 ise değeri 0 yap diyip integer değerini kullanabilirsin bu sayede integer değerin 0 olmuş olur.

Ayrıca bağlantı neden bir hata çıkarıyor anlamış değilim çıkarmaması gerek.
 
C#:
        bool deger;
        string a = "n@yeon";
        for(int i=0; i<a.Length; i++)
        {
            if(a[i] == '@')
            {
                deger = false;
                Console.Write(deger.ToString());
            }
        }
Cevap veren herkese teşekkürler ama size ayrı teşekkür ederim. Sizin yöntem bana ilham verdi.
Sorunu şöyle çözdüm.
Adsız.png


C#:
int sonuc=0;
sonuc = mail.IndexOf(kontrol, 0, mail.Length - 1);
if(sonuc<=0)

Bu yazım if içine eğer mail içinde @ varsa false değer gelmesini sağladı.
 
Son düzenleme:
Merhaba, biraz uzun yoldan yapmissiniz. .Net 4.5 framework'unda String Contains class'i mevcut. Bu class'a search edilecek String ve harfi verirseniz size kelimenin icinde bulunursa true ifadesini doner.
Su sekilde deneyebilirsiniz;

String word = "abcdse@asda";
String letterToCheck = "f";
Boolean existsOrNot = !word.Contains(letterToCheck);

Console.WriteLine(existsOrNot.ToString());

Basina da ! koydum ki icerirse false donsun.

surada calistirarak gorebilirsiniz C# Online Compiler | .NET Fiddle

Iyi calismalar :)
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı