• 08-01-2016, 00:15:30
    #1
    Merhaba,
    Kullanıcıdan alınan bir cümlenin kelimelerini alfabeye göre dizmem gerekiyor.
    Bu konuda bir sıkıntım yok fakat sorun şu program kapanmadan 1 den fazla çalışmıyor.


    en üstteki for dongusunu çalışmıyor.
    kackere değerini 100 de girsem 1 kereden sonra sonlanıyor.
  • 08-01-2016, 00:22:31
    #2
    mebba adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    Kullanıcıdan alınan bir cümlenin kelimelerini alfabeye göre dizmem gerekiyor.
    Bu konuda bir sıkıntım yok fakat sorun şu program kapanmadan 1 den fazla çalışmıyor.

     Scanner cin = new Scanner(System.in);
            int kackere;
            test = cin.nextInt();
            for(int i=0; i<kackere; i++){
            String cumle;
            cumle = cin.nextLine();
            String ayrac = " ";
            String[] kelimeler = cumle.split(ayrac);
            TreeSet<String> kume = new TreeSet<String>();
            for(String s:kelimeler)
            {
                boolean ekle = kume.add(s);
            }
            Iterator<String> iterator = kume.iterator();
            while(iterator.hasNext())
            {
                System.out.print(iterator.next()+ " ");
            }
            
        }
        }
    en üstteki for dongusunu çalışmıyor.
    kackere değerini 100 de girsem 1 kereden sonra sonlanıyor.
    Kaç kere çalışacak bilgisini test olarak alıp for un içine kackere değişkenini atmışsınız
  • 08-01-2016, 00:50:07
    #3
    Vjolenza adlı üyeden alıntı: mesajı görüntüle
    Kaç kere çalışacak bilgisini test olarak alıp for un içine kackere değişkenini atmışsınız
    sorun o değil hocam buraya koymadan önce düzenleyim dedim o kısmı atlamışım.

    eğer ki değer 3 olursa
    ali
    ayse
    ahmet gibi tek kelime girersem çalışıyor fakat cümle alamıyorum.
  • 08-01-2016, 01:03:28
    #4
    mebba adlı üyeden alıntı: mesajı görüntüle
    sorun o değil hocam buraya koymadan önce düzenleyim dedim o kısmı atlamışım.

    eğer ki değer 3 olursa
    ali
    ayse
    ahmet gibi tek kelime girersem çalışıyor fakat cümle alamıyorum.
    Scanner cin = new Scanner(System.in);
    Scanner cin2 = new Scanner(System.in);
    cin2.useDelimiter("\n");

    yaparsan düzelir. Şu şekilde de çağırırsın.

    int test= cin.nextInt();
    cumle = cin2.nextLine();

    Edit1: Ayrıca zaten nextLine() kullanmışsın. useDelimeter'a gerek kalmadan çalışıyor olması lazım

    Edit2: Evet onu kullanmadan da çalıştı.

    Buyur;

    	                Scanner cin = new Scanner(System.in);
    			Scanner cin2 = new Scanner(System.in);
    			
    			System.out.println("Kac defa calissin: ");
    		        int test= cin.nextInt();
    		        for(int i=0; i<test; i++){
    		        String cumle;
    		        System.out.println("Cumleyi giriniz: ");
    		        cumle = cin2.nextLine();
    		        String ayrac = " ";
    		        String[] kelimeler = cumle.split(ayrac);
    		        TreeSet<String> kume = new TreeSet<String>();
    		        for(String s:kelimeler)
    		        {
    		            kume.add(s);
    		        }
    		        Iterator<String> iterator = kume.iterator();
    		        while(iterator.hasNext())
    		        {
    		            System.out.println(iterator.next()+ " ");
    		        }
        
    		    }
  • 08-01-2016, 01:19:59
    #5
    mebba adlı üyeden alıntı: mesajı görüntüle
    sorun o değil hocam buraya koymadan önce düzenleyim dedim o kısmı atlamışım.

    eğer ki değer 3 olursa
    ali
    ayse
    ahmet gibi tek kelime girersem çalışıyor fakat cümle alamıyorum.
    Scanner cin = new Scanner(System.in);
            int kackere;
            kackere = cin.nextInt();
            for(int i=0; i<=kackere; i++){
            String cumle;
            cumle = cin.nextLine();
            String ayrac = " ";
            String[] kelimeler = cumle.split(ayrac);
            TreeSet<String> kume = new TreeSet<String>();
            for(String s:kelimeler)
            {
                kume.add(s);
            }
            Iterator<String> iterator = kume.iterator();
            while(iterator.hasNext())
            {
                System.out.print(iterator.next()+ " ");
            }
            
        }
    bu şekilde de çalıştırabilirsin hocam; neden <= koyduğuma gelirsek eğer farkındaysan ilk cümleyi yazmaya başladığında bir boşluk olmuş oluyor. Bu demek oluyor ki 1 kere boş dönüyor bu döngü o yüzden = koyarak istediğin sayıya ulaşabilirsin
  • 08-01-2016, 04:20:57
    #6
    teşekkürler sorunu hallettim sayenizde.