Merhabalar bir sorum var elimde bir for döngüsü var ve ben içindeki sayacımı 1'er 1'er arttırmama rağmen dizinin elemanlarını 1 atlıyarak yazıyor yani 1. indisi yazıyor sonra 2. indisteki değeri yazması gerekirken 3. indisteki değeri yazıyor... Nedenini anlayamadım yardımcı olabilirimisiniz....

int abi=0;
for(int  i=0 ; i< lines.size(); i++)
{
    for(int x = 0; x < lines.get(i).length();x++)
    {
        if(lines.get(i).charAt(x) == 'D'&& lines.get(i).charAt(x+1) == 'o'&&lines.get(i).charAt(x+2) == 'ğ'&&lines.get(i).charAt(x+3) == 'u'&&lines.get(i).charAt(x+4) == 'm'){
            abi = i;
            break;
        }
    }
}

for(int j=abi+1;j<lines.size();j++){
    lines1.add(lines.get(j));
    lines.remove(j);
}

Baya mantıksız ve sistemi yoran bir kod olmasına rağmen buna ihtiyacım var....

soruldu: 05 Eyl '14, 03:19

frknkntr's gravatar image

frknkntr
62681122
cevap kabul oranı: 26%

kapatıldı: 30 Ağu '15, 19:47


hallettim sağolun... Müslüm ÖZTÜRK bey....

String aranacak1 = "DoğumlarDüzenle";   //farklı arraylıstlere ayırma
            String aranacak2 = "ÖlümlerDüzenle";
            Boolean b=false;
            outerloop:
            for(int i=0;i<lines.size();i++){

            b=  lines.get(i).contains(aranacak1);

            if(b == true){
                lines1.add(lines.get(i));
                b=false;
                for(int j = i+1; j < lines.size(); j++){

                    b =lines.get(j).contains(aranacak2);

                    if(b==true){
                        lines2.add(lines.get(j));
                        for(int z = j+1;z<lines.size();z++){
                        lines3.add(lines.get(z));}
                        break outerloop;

                    }
                    else{

                        lines2.add(lines.get(j));
                    }

                }

                }else{

                    lines1.add(lines.get(i));

            }

            }
permanent link

cevaplandı: 05 Eyl '14, 06:55

frknkntr's gravatar image

frknkntr
62681122
cevap kabul oranı: 26%

Hocam maalesef boş ekran dönüyor bu seferde

alt text

permanent link

cevaplandı: 05 Eyl '14, 05:17

frknkntr's gravatar image

frknkntr
62681122
cevap kabul oranı: 26%

kardeş örnek kod parçasını debug ile incele burda doğru sonuç üretiyor. Eğer hala sende sorun varsa örnek bir liste göndersen iyi olacak.

(05 Eyl '14, 05:32) Müslüm ÖZTÜRK M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image
-1

lines.remove(j); satını silersen sorun düzelecektir

Ayrıca dıştaki döngü için foreach, metin içerisindeki doğrulama için regex kullanmanı öneririm daha okunanlı ve anlaşılır olur kodun.

İyi çalışmalar

permanent link

cevaplandı: 05 Eyl '14, 03:29

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.6k103690
cevap kabul oranı: 28%

değiştirildi: 05 Eyl '14, 04:44

Hocam abi+1 dememin sebebi bulduğum indisten sonraki değerin içeriğini yazdırmak istemem... Regex, regionMatches gibi metodlarda denedim ama listem hep boş dönüyo bende en son çözüm olarak bunu deniyorum...

(05 Eyl '14, 03:49) frknkntr frknkntr's gravatar image

abi olarak değiştirdim ama yinede aynı sonuç hocam

(05 Eyl '14, 03:51) frknkntr frknkntr's gravatar image

Hocam tahminim dışardaki for'da sorun yok ama içerdeki forlardan biri yüzünden değerleri 1 atlıyark çekiyor...

(05 Eyl '14, 03:55) frknkntr frknkntr's gravatar image

anlatığın sorunu içeren örnek bir lines dizisi gönderebilir misin? Beklediğin sonucu ve gelen hatalı sonucuda verebilirsin daha kolay çözüm üretebilirim.

(05 Eyl '14, 04:37) Müslüm ÖZTÜRK M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

cevabımı güncelledim.

(05 Eyl '14, 04:45) Müslüm ÖZTÜRK M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

hocam elimde stabil bir lines dizisi yok internetten çekiyorum veriyi normalde lines dizisini listelediğimde sorun olmadan listeleniyor. Ben bu lines dizisinde 2 noktayı kendime referans aldım DoğumlarDüzenle ve ÖlümlerDüzenle diye...Eğer DoğumlarDüzenle'ye rastlarsam rastlldığım indisten sonraki kısımları yeni dizime atmak istiyorum. sonra yeni dizimde ÖlümlerDüzenle için aynı işlemleri uygulamak istiyorum.Tabi bu sırada eklediğim elemanları diğer diziden sileceğim...Yapmak istediğim bu ama sonuç olarak eklediğim diziler 1 eleman atlayarak ekliyor ve ilk dizidende silme işlemi gerçekleşmiyor

(05 Eyl '14, 04:48) frknkntr frknkntr's gravatar image

Hocam düzelmedi maalesef..

(05 Eyl '14, 05:07) frknkntr frknkntr's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster
-1

Yapmak istediğini anladığım kadarıyla aşağıdaki kodu yazdım. İnşallah doğru anlamışımdır

List<String> lines = new ArrayList<String>();
lines.add("add");
lines.add("DoğumlarDüzenle");
lines.add("adada");
lines.add("ÖlümlerDüzenle ");
lines.add("yy");

List<String> lines1 = new ArrayList<String>();

int abi = 0;
for (int i = 0; i < lines.size(); i++) {
    for (int x = 0; x < lines.get(i).length(); x++) {
        if (lines.get(i).charAt(x) == 'D' && lines.get(i).charAt(x + 1) == 'o' && lines.get(i).charAt(x + 2) == 'ğ' && lines.get(i).charAt(x + 3) == 'u' && lines.get(i).charAt(x + 4) == 'm') {
            abi = i;
            break;
        }
    }
}

int size=lines.size();
for (int j = size - 1; j > abi; j--) {
    lines1.add(0, lines.get(j));
    lines.remove(j);
}
permanent link

cevaplandı: 05 Eyl '14, 05:09

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.6k103690
cevap kabul oranı: 28%

değiştirildi: 05 Eyl '14, 05:23

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077

Soruldu: 05 Eyl '14, 03:19

Görüntüleme: 692 kez

Son güncelleme: 30 Ağu '15, 19:47

powered by BitNami OSQA