Soru & Cevap

İki Boyutlu Dizide sadece bir boyutunu rnd seçme

12.11.2019 - 01:04

String[] dizi_paragraf = dosya.split("\n");
for (int i = 0; i < dizi_paragraf.length; i++) {
    String[] dizi_cumle = dizi_paragraf[i].split("\\.");
    String[][] dizi_total = new String[dizi_paragraf.length][dizi_cumle.length];
    int[][] dizi = new int[dizi_paragraf.length][dizi_cumle.length];
    for (int j = 0; j < dizi_cumle.length; j++) {
        dizi_total[i][j] = dizi_cumle[j];
        dizi[i][j] = j;
        System.out.println(dizi[i][j]);
    }
}


Output:

    0-0
    0-1
    1-0
    1-1
    1-2
    2-0
    3-0
    3-1
    4-0
    4-1
    5-0
    5-1
    5-2
    5-3

 
Çıktı yukarıdaki gibi ama ben aşağıdaki gibi istiyorum. En aşağıda açıklama var. Bu değişmeli sürekli aynı şekilde kalmamalı.


        0-1
        0-0
        1-1
        1-0
        1-2
        2-0
        3-1
        3-0
        4-0
        4-1
        5-3
        5-1
        5-0
        5-2



"i" sabit olmalı. Fakat j rastgele seçilmelidir. 0 endeksi için, j değeri: 0 ve 1'dir. Bu, rastgele seçilmelidir. indeks 1 için, j değeri: 0,1 ve 2. Bu, rastgele seçilmelidir.
Her i için j'deki değer rastgele değişir, ancak j uzunluğuna kadar.
Bunu nasıl yapabilirim? Herhangi bir fikri olan?
Örneğin, dizi 0 için 0 veya 1 üretmelidir. Birinci dizi için 0.1 veya 2 üretmelidir. 2. Indis için sadece 0 alınmalı. vb.
Sadece örnek. Bu değişiklik olabilir. Bunu dinamik olarak alıyorum.

39 Görüntülenme

1 Cevap

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

picture-94501-1499635857.jpg
ozgeyilmzh
12.11.2019 - 12:53

Yaptığınız örnek için çok teşekkür ederim ama dediğim gibi i ve j değerleri değişebiliyor metne göre. O yüzden en başta static olarak alamam klasik bir metini veriyorum programa ve onu da i ve j değerlerinde tutturuyorum. Bu her zaman değişebilir. Sabit olarak alamam. Ve dediğim gibi rastgele seçeceğim ama aynısı gelmemesi gerekiyor. indis 0 ise 0 veya 1 seçilmeli. ya da 1 veya 0 gelir. Ama diyelim 0 indisinde 4 cümle var o yüzden j burada 0,1,2 ve 3 oluyor. Bunu da rastgele seçmem gerekiyor. Yani tekrarlı olmamalı. 
 

String[] dizi_paragraf = dosya.split("\n");
for (int i = 0; i < dizi_paragraf.length; i++) {
	String[] dizi_cumle = dizi_paragraf[i].split("\\.");
	String[][] dizi_total = new String[dizi_paragraf.length][dizi_cumle.length];
		for (int j = 0; j < dizi_cumle.length; j++) {
			dizi_total[i][j] = dizi_cumle[j];
	}
}

Yukarıdaki kod işlemi yapıyor. Ben burada sadece ayırma işlemini yaptım. i ve j değerleri girilen metne göre değişiyor. Bu metin dosya değişkeninde tutuluyor.Bilmiyorum daha fazla nasıl açıklayabilirim.

Stl
12.11.2019 - 01:14
C# Konsol projesi olarak örneği oluşturduğum için ve program Main bloğunda çalıştığı için global değişken ve metodları static olarak tanımladım ve elimde paragraftan gelecek veriler bulunmadığı için de verileri sizin verdiğiniz sayısal örneklerden aldım. Yani sizin verileri ve nesneleri static olarak alma zorunluluğunuz yok. Paylaştığım kodları aradaki dil farklarını ortadan kaldırarak projenize entegre edebilirsiniz. Kodlar istediğiniz tüm koşulları sağlamaktadır. Sadece programınıza iyi bir şekilde entegre etmeniz gerekiyor. Veriler değişse bile sıkıntı çıkmayacaktır. İsterseniz projenize entegre etme konusunda da yardımcı olabilirim.