Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Matrisi String şekilde return ettirmek = sorun. ( Java )


Öne çıkan mesajlar

Mesaj tarihi:
Matrislerle ilgili bi projem var.İşte işlemler yapıyor falan gui üzerinden olaylar gelişiyor. Yalnız guıde adamın girdiği matrisleri kullanıcıya göstermem lazım tabi. TextArea içine setText yapmam içinde benim tüm bu matrisi alıp string olarak donduren methodu yazmam lazım. Bilemedim nasıl olcak bu işler. Adam kafasına göre matrix size'ı girebilir tabi. O yüzden işler karışıyor. Ha bi show metodu var ama void method. direk konsola yazıverıyor netbeanste, oda pek işime yaramıyor haliyle. Ha guide o konsolu gösterebileceğim birşey varsa oda güzel olur.
Benim kafam pek basmadı.
Değerli bilgilerinizi esirgemeyiniz efenim.
Mesaj tarihi:
Matris için nasıl bir veri yapısı kullandığını bilmeden cevap vermem zor ama bahsettiğin show metodunu inceleyerek nasıl yapacağını bulabilmen lazım.
Mesaj tarihi:
matris yapısı 2d array. yok öle bir muabbeti.
show metodu 2 tane for dondurerek arrayın içini geziyor.

public void show() {
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++)
System.out.printf("%9.4f ", DATA[i][j]);
System.out.println();
}
System.out.println();
}


show kodu bu. hala kafam basmıyor return nasıl alıcak tüm 2d matrisi.
a b c
d e f
g h ı
diye nasıl gosterıcek onu bılemedım.
Mesaj tarihi:
Ekrana bastirmak yerine ayni formatta bir degiskene ekleyeceksin iste surekli.

a,b,c'yi ekledin, n ekleyeceksin, d,e,f'yi ekleyip devam edeceksin.
Mesaj tarihi:
Hep sonuncuyu döndürüyor o şekilde eklemem gereken değişken forun içinde oldugu için sanırsam . yada ben yanlış anlamış olabilirim.
forun içine returnü koyabılsek append ederek yapabilirim aslında ama öle birşey olmaz heralde.
Mesaj tarihi:
galiba oldu fakat 1,0000002,0000003,0000004,000000 konsolda bu outputu veriyor bunu hallederim bi şekilde nlerde bi sorun var heralde. birde
jTextArea1.setText(matrices.get(0).toString(m1));

text areayı bu şekilde o methodla m1 matrisini yolladıgımda jTextAra1 de java.io.PrintStream@xxxx tarzı bişey görüyorum her bir değer için.

bu sorun nerden kaynaklanıyor?
Mesaj tarihi:
Sen orda aslında objeyi yazdırıyosun sanırım, objenin değerini alman lazım halbuki. Tam kodu koysan daha rahat anlaşılır.

Virgüllü çıkmasının sebebi de muhtemelen arrayi double veya float olarak tanımlayıp içindeki sayıları int'e cast etmemen, tam hatırlamasamda Integer.Parse(x) diye kullanılıyodu sanırım. Aldığın sayıyı böyle bi integer'a cast edersen virgül sorunuda kalkar ortadan
Mesaj tarihi:
System.out yerine ByteArrayOutputStream ve PrintStream kullanırsan aynen System.out kullanır gibi gibi yapabilirsin işlemlerini. Şöyle dene (compile etmedim hata olabilir):


ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);

for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++)
ps.printf("%9.4f ", DATA[j]);
ps.println();
}
ps.println();

return baos.toString("UTF8");
Mesaj tarihi:
virgül sorunu dediğin gibi double dan kaynaklanıyor onu dediğin gibi parse int le halledicem.

Orda obje gösteriyor olabilirde ortada hiç döndürülen bir obje yok setText diyip matrices arrayının içindeki m1 matrisini toString ederken. dolaylı yoldan bi yerden nerden matris buluyor çözemedim. şu anki durumu gösteriyim kodları.


public String toString(Matrix m){
String ohm = "";
for(int i=0; i<ROW; i++)
{
for(int j=0; j<COL; j++)
{
ohm = ohm + System.out.printf("%f",m.DATA[i][j])+" ";

}
ohm = ohm + "n";
}
return ohm;

-------------------
jTextArea1.setText(matrices.get(0).toString(m1));// guideki text areaya yazdırdıgım yer.

m1 matris, to String kodu yukardaki kod. matrices da matrisleri koydugum arraylist.
Mesaj tarihi:
@mirage
bide onu deniyim şimdi.

illegal format conversion hatası aldım bu seferde. nerde bi bakınayım.

PrintStream le bi alakası olabilirmi?
Mesaj tarihi:
Bu arada sorununla doğrudan ilgisi yok ama toString metodunu tanımlayış şeklin ve tanımladığın yer nesne yönelimi açısından pek hoş değil.

Madem Matrix isminde bir class'ın var. toString metodunu o class'ın içinde override etmek tercih edilen yoldur.


class Matrix {

@Override
public String toString() {
...
}

}


şeklinde tanımlarsın metodu. Sonra bir matrix nesnesini String'e çevirmek istediğinde m1.toString() yaparsın olur biter.

Format conversion hatasını nerde alıyorsun bu arada?
Mesaj tarihi:
toString methodum Matrix classının içinde.
Dediğin gibi ordan override ediyor.

IllegalFormatConversion hatasınıda matrisi senın dediğin yolla gösterirken alıyorum sanırım. o methodu çağırdıgımda veriyor.
methodun ayrıntısına bakamadım.
Mesaj tarihi:
private static String getMatrixString (Matrix m) {
String value="";
for(int k=0; k for(int i=0; i value = value + m[k][ i ];
if (i != m.Columns.Count-1)
value = value + " ";
}
value = value + System.getProperty("line.separator");

}
return value;
}

someText.setText(getMatrixString(matrices[0]));
Mesaj tarihi:
yardımlarınız için soalun ama o Print stream io sorununu çözemedim. JTable da göstererek çözdüm gibi bişi sayılır. pek güzel olmadı ama idare eder.

Ayrıca elinizde Matrisi inverse eden kod varsa çok makbule geçer.
×
×
  • Yeni Oluştur...