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 )


Dwinz

Öne çıkan mesajlar

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.
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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?
Link to comment
Sosyal ağlarda paylaş

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
Link to comment
Sosyal ağlarda paylaş

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");
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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?
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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]));
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...