Soru & Cevap

Java dizi işlemleri ...

07.11.2019 - 02:12

Ben şimdi bir metni ilk önce paragraflar olarak, daha sonra bu paragrafları cümlelere ayırarak, daha sonra bu cümleleri kelimelerine ayıracağım, kelimeleride harflerine ayıracağım. 

Bunları daha sonra rastgele seçeceğim. Diyelim pragraf değiştir dedim pragrafların yerleri değişecek. Cümle değiştir dersem Paragraftaki cümlelerin yeri değişecek. Kelime değiştir dersem de bu cümlelerdeki kelimelerin yeri değişecek. 

Rastgele seçildiğinde aynı paragraf, cümle veya kelime tekrar gelmemeli.

Bunu java da nasıl yapabilirim sizce ? Paragraf kısmına kadar yapabildim. Açıkçası ama devamını getiremedim. Yardımcı olabilecek biri var mı ? 

 

Paragraf kodunu aşağıya bırakıyorum. Fikri olan ?

public void paragraf() {

		String line;
		line = textArea.getText();
		String dizi[] = line.split("\n\n");
		Random r = new Random();
		int[] randomtut = new int[dizi.length];
		int[] randomdizi = new int[dizi.length];

		for (int i = 0; i < dizi.length; i++) {
			randomtut[i] = 0;
			randomdizi[i] = i;
		}
		for (int i = 0; i < dizi.length; i++) {
			int randomsayi = r.nextInt(dizi.length);
			int count = 0, x = 0;
			if (randomtut[randomsayi] == 1) {
				while (true) {
					randomsayi = r.nextInt(dizi.length);
					if (randomtut[randomsayi] == 0) {
						randomtut[randomsayi] = 1;
						count++;
						break;
					}
				}
			} else {
				randomtut[randomsayi] = 1;
				count++;
			}
			sayi = randomdizi[randomsayi];

			if (x <= dizi.length) {

				metin += dizi[sayi] + "\n";
				x++;
			}
		}
	}

 

187 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-112887-1506457490.jpg
recepözen
08.11.2019 - 12:13

Öncelikle merhaba karıştırma işlemini yapmadım ancak şu kod işini görür diye tahmin ediyorum. 

 

private void metniParcala() {

        String text = "Dünya'nın dış kabuğu ile bu kabuğun üzerindeki atmosfer (hava) ve hidrosfer (okyanuslar ve denizler) katmanları doğrudan gözlemle incelenebilir. Oysa Dünya'nın iç bölümlerine ulaşarak yapısını doğrudan inceleme olanağı yoktur. Dünya'nın iç yapısına ilişkin bütün bilgiler depremlerin incelenmesinden ve Dünya'nın içinde var olduğu düşünülen maddeler üzerindeki deneylerden elde edilmiştir. Yanardağların varlığına ve yer kabuğunun yüzeyindeki ısı akışı ölçümlerine dayanarak Dünya'nın iç bölümlerinin çok sıcak olduğunu biliyoruz. Yer kabuğunun derinliklerine doğru indikçe kayaçların sıcaklığı her kilometrede 30 °C kadar yükselir. Böylece; kabuğun en alt katmanlarının çok daha üstünde yer alan kayaçlar kızıl kor haline dönüşür. Aslında Dünya'nın büyüklüğüne oranla yer kabuğu çok incedir. Eğer Dünya'yı bir futbol topu büyüklüğünde düşünürsek kabuğu da ancak topun üzerine yapıştırılmış bir posta pulu kalınlığındadır. Kabuğun altında kalan kayaçlar ise akkor sıcaklığına kadar ulaşır.\n" +
                "\n" +
                "Depremlerin nedeni, yer kabuğundaki bir kırıkla birbirinden ayrılan iki büyük kütlenin (levhanın) birdenbire harekete geçerek üst üste binmesi ya da uzaklaşması sonucunda yer kabuğunun şiddetle ileri geri sarsılmasıdır. Büyük bir depremde bazi titreşimler Dünya'nın öbür yüzündeki dairesel bir alanda \"odaklanır\". Buna karşılık bazı titreşimler çekirdeği aşıp öbür yana geçmez. Böylece Dünya'nın öbür yüzünde hiçbir titreşimin duyulmadığı halka biçiminde bir \"gölge\" belirir. Bu gölgenin boyutları ölçülerek çekirdeğin büyüklüğü hesaplanabilir. Ayrıca deprem titreşimlerinin yayılma hızı saptanarak içinden geçtikleri maddelerin yoğunluğu, dolayısıyla bileşimi belirlenebilir. Eritilmiş kayaçlarla yapılan laboratuvar deneyleri bu çalışmalara büyük ölçüde ışık tutar. Dünya'nın yüzeyi, kalınlığı 6 ile 70 km arasında değişen bir \"kabuk\" katmanıyla örtülüdür. Yerkabuğu denen bu katman daha ağır maddelerden oluşan ve 2.865 km derine inen çok kalın \"manto\" katmanının üzerine oturur. Mantonun bittiği yerde Dünya'nın merkezine kadar 3.473 km boyunca uzanan \"çekirdek\" başlar. Jeologlara göre, içteki manto katmanı çok büyük kabarma hareketleri sonucunda yerkabuğunu iterek birçok yerde yüzeye çıkmıştır. Ayrıca normal olarak yerkabuğunun yapısında bulunmayan bazı kayaçlar da yanardağı hareketleri nedeniyle Dünya'nın yüzeyine ulaşmıştır. Jeologlar bu verilere dayanarak mantonun üst kesimlerinin \"ültrabazik\" korkayaçlardan oluştuğunu ileri sürerler. Bir yanda asit kayaç olarak nitelenen granitin yer aldığı kayaç sınıflandırmasının öbür ucunda bulunan bu ültrabazik kayaçlar ağır demir ve magnezyum silikatlardan oluşur. Mantonun alt bölümlerinin de aynı yapıda, ama daha ağır ve yoğun olduğu sanılmaktadır. Çekirdeğin yapısındaki maddeler ise hem mantodakilerden daha ağır, hem de hiç değilse çekirdeğin dış bölümünde sıvı haldedir. Buna karşılık çekirdeğin içinin manto ve kabuk gibi katı olduğu sanılıyor. Yerçekirdeğinde olağanüstü bir basınç vardır. Bilinen elementlerin çoğu böylesine büyük bir basınç altında çok yoğunlaşmış olarak bulunabilir; ama jeologların genel kanısı, bazı demirli göktaşları (meteoritler) gibi çekirdeğin de metal halindeki nikel ve demirden oluştuğudur." +
                "\n";

        List<String> paragrafList = new ArrayList<>();
        List<String> cunleList = new ArrayList<>();
        List<String> kelimeList = new ArrayList<>();

        int startCounter1 = 0;
        for (int i = 0; i < text.length(); i++) {
            if (text.substring(i, i + 1).equals("\n")) {
                paragrafList.add(text.substring(startCounter1, i));
                startCounter1 = i;
            }
        }

        int startCounter2 = 0;
        for (int i = 0; i < text.length(); i++) {
            if (text.substring(i, i + 1).equals(".")) {
                cunleList.add(text.substring(startCounter2, i));
                startCounter2 = i;
            }
        }

        int startCounter3 = 0;
        for (int i = 0; i < text.length(); i++) {
            if (text.substring(i, i + 1).equals(" ")) {
                kelimeList.add(text.substring(startCounter3, i));
                startCounter3 = i;
            }
        }
    }

 

Özge
08.11.2019 - 02:26
Bu kodu denedim ama karıştırma işini yapmadı. Sadece ayrıştırma işlemi oldu. Şöyle bir link buldum https://www.geeksforgeeks.org/collections-shuffle-java-examples/ Bunu deneyeceğim.