Merhabalar String içinde String aramak için indexOf kullanıyorum. indexOf kullanırken bir klasörden dosyaların isimlerini alıyorum ve kullanıcının yazdığı kelimenin içinde geçtiği dosyaları ekrana yazdırıyorum fakat ne yapsam ne etsem karşılaştırmaya ilk harften değilde 2. harften başlıyor. dosya isimlerini aynı bi string'e atıp baktığımda orda isimler normal gözüküyor fakat arama yaparken dosyaların ilk harflerini görmezden geliyor. Yardım ederseniz sevinirim...
indexOf sorunsalı
kodları eklersen sorun daha rahat anlaşılır ama bence indexOf un 0 dan başladığını unutuyorsunuz
- [ Tüm kodu seç ] [ Yeni Pencerede Göster ]
String a=jTextField1.getText(); // arama kelimesi String makale_isim=listOfFiles[i].getName(); // içinde aranılacak metin int deger=makale_isim.indexOf(a);
Problemimi çözdüm küçük bir mantık hatası yapıyormuşum _cypher_ ilgin için teşekkürler.
String s1 = "fatih";
String s2 = "fatih ";
System.out.println(s1.equalsIgnoreCase(s2));
System.out.println(s1.compareTo(s2));
System.out.println(s1.indexOf("ih"));
System.out.println(s1.indexOf("kih"));
String s3 = "karate";
System.out.println(s3.indexOf("a"));
System.out.println(s3.lastIndexOf("a"));
bu örnek belki işinize yarar.
String yeni;
yeni=yazi.substring(3); // yazi içerisindeki bilginin 3 uncu karakterinden sonrasını yeni değişkeninin içerisine atar.
.substring(x,y) : string bilgiyi parçalar. X’den başla, y kadar al.
.replace(ch org,ch değiştirilen) :org ile verilen chari değiştirilende verilenle değiştir.
.trim() :Sağında/solunda bulunan boşlukları temizler.
.toUpperCase() :Karakterleri büyüt.
.toLowerCase() :Karakterleri küçült.
.charAt(‘a’) :ilk a’nın konumunu verir. Yoksa -1 değeri döner.
.indexOf(‘a’) :ilk a’nın konumunu verir.
.lastIndexOf(‘a’) :sondan ilk a’nın konumunu verir.
.equals(xx) :karşılaştırmayı sağlar.
.equalsIgnoreCase(xx) :büyük/küçük ayırmadan karşılaştırmayı sağlar.
.conCat(x) :Stringleri birleştirir.
.compareTo(x) :Karşılaştırmayı sağlar.