Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπέρα, θα ηθελα να ρωτησω πως γινεται να μετατρεψω εναν δισδιαστατο πινακα σε string στη java, ευχαριστω πολυ, εκ των προτερων!

Δημοσ.

ΔΕΝ τον μετατρέπεις (ή κάνω λάθος; δεν γράφω java... mpliax). Γράφεις μόνος σου τον "μετατροπέα".

Αν έχεις ένα πίνακα Α που είναι Ν επι Μ, φτιάξε ένα πίνακα Β που είναι (Ν+1)*Μ και κάνε τα εξής copy:

B[i + (N+1)*j] = A[i][j];

και βάλε μια λουπα που γράφει τον χαρακτήρα '\n' στις θέσεις N, 2N + 1, 3N + 2 ...

for(i = 1; i < M-1; i++) B[(N+1)*(i-1) +1] = '\n';
Δημοσ.

Αφού δεν γράφεις Java και λες mpliax, τότε γιατί στην ευχή απαντάς και λες πίπες; Για να ανεβάσεις posts; Για να trolάρεις; Γιατί;


καλησπέρα, θα ηθελα να ρωτησω πως γινεται να μετατρεψω εναν δισδιαστατο πινακα σε string στη java, ευχαριστω πολυ, εκ των προτερων!

 

 

Θες κάθε σειρά του πίνακα να την τυπώσεις; Τι θες να κάνεις; 

  • Like 1
Δημοσ.

Κάτι τέτοιο;

// char[][] yourArray

String result = "";
for(char[] row : yourArray)
{
    result += String.valueOf(row);
}
 

Αν και ένα StringBuilder θα ήταν ταχύτερο

  • Like 2
Δημοσ.

Και τα for-each loops iterator χρησιμοποιουν internally αντιθετα με τα παραδοσιακα for.

Για τα StringBuilders συμφωνω

 

 

True... βιασύνη δικιά μου. Όντως έτσι είναι. 

Δημοσ.

ευχαριστω καταρχας οσους ενδιαφερθηκαν, ειναι 2η βδομαδα που κανω java στη σχολη, οποτε δεν μας εχει δειξει iterators(οτι ξερω γι αυτους απο c++) μας εχει βαλει ως ασκηση να φτιαξουμε ενα συγκεκριμενο pattern με * και θελει σε ενα υποερωτηματα να εμφανιζεται το output σε νεο παραθυρο με την εντολη:  JOptionPane.showMessageDialog(null,"Ακολουθουν 2 αστεράκια τυπωμένα σε δύο γραμμές \n*\n* ","Παράθυρο Εξόδου", JOptionPane.INFORMATION_MESSAGE);  μονο που για να βγει ετσι πρεπει να εχω string κ εγω το pattern το εχω κανει σε ενα δισδιαστατο πινακα, επομενως θελω να κανω τον πινακα string...

Δημοσ.

Δεν είναι ανάγκη να κάνεις τον πίνακα string. 

 

Όλα τα Objects στην Java έχουν μία μέθοδο την toString(). Όπου την "παίρνει", αυτή η μέθοδος επιστρέφει το περιεχόμενο του object ως String. Επίσης, υπάρχει και η static valueOf της κλάσης String (ήδη αναφέρθηκε παραπάνω). 

 

Προσωπικά θα σου πρότεινα να κάνεις το εξής:

 

 

List<String> thePatterns = new ArrayList<String>();
 
// Γέμισε την λίστα σου με την μέθοδο add() (ή append.. δεν θυμάμαι αλλά το autocomplete του IDE σου θα σου δείξει )
 
StringBuilder sb = new StringBuilder();
 
foreach (thePatterns as pattern) {
    sb.add(pattern).add(" "); // Ή append είναι ή add....
}
 
// Με sb.string() (ή κάπως έτσι.. δες το autocomplete...) παίρνεις τα περιεχόμενα του sb και τα βάζεις στο JText που έχεις. 

Γενικά για να έχεις Array στην Java πρέπει να υπάρχει συγκεκριμένος λόγος. Δεν είναι C....

Δημοσ.

καλησπερα, συγγνωμη για τυχον κωτσανες που θα πω αλλα ειμαι αρχαριος ακομα οποτε δειξτε επιοικεια :P θελω να σε ρωτησω ποιος ο λογος αρχικα να το κανω list και αν μπορεις να μου εξηγησεις λιγο την stringbuilder και τι εννοεις οταν λες οτι πρεπει να υπαρχει συγκεκριμενος λογος για να χρησιμοποιησω array? τι το κακο εχει η χρησιμοποιηση ενος πινακα δηλαδη?

Δημοσ.

καλησπερα, συγγνωμη για τυχον κωτσανες που θα πω αλλα ειμαι αρχαριος ακομα οποτε δειξτε επιοικεια :P θελω να σε ρωτησω ποιος ο λογος αρχικα να το κανω list και αν μπορεις να μου εξηγησεις λιγο την stringbuilder και τι εννοεις οταν λες οτι πρεπει να υπαρχει συγκεκριμενος λογος για να χρησιμοποιησω array? τι το κακο εχει η χρησιμοποιηση ενος πινακα δηλαδη?

 

Στις OO γλώσσες υπάρχει η έννοια του container... κλάσεων που έχουν σχεδιαστεί για να έχουν μέσα άλλα δεδομένα. Αυτές προσφέρουν ευκολίες, όπως εγγυημένη ταχύτητα ψαξίματος (π.χ. HashMap στην Java), ευκολία στο να βάζεις και να βγάζεις δεδομένα/αντικείμενα κτλ. 

 

Ένας απλός πίνακας στην Java είναι μία δομή δεδομένων που δεν μπορεί να αλλάξει μέγεθος, δεν έχει ευκολίες στο να βγάζεις/βάζεις δεδομένα και η όποια αντιγραφή του σε άλλον πίνακα "κοστίζει" από πόρους. 

 

 

Η κλάση StringBuilder είναι αυτό που λέει το όνομά της. Χτίζει Strings. Εάν έχεις να φτιάξεις ένα string από κομμάτια, τότε και την κλάση String να χρησιμοποιήσεις, αυτή καλεί μεθόδους της StringBuilder. Οπότε, είναι γρηγορότερο να χρησιμοποιήσεις εξαρχής την StringBuilder. Επίσης, θαρρώ (εάν θυμάμαι καλά) πως με την StringBuilder μπορείς να φτιάξεις μεγαλύτερα String από αυτά που σου επιτρέπει η String.. 

 

 

Anywaaaay...

 

Για Array VS List δες εδώ (π.χ.): http://stackoverflow.com/questions/1589813/when-to-use-a-list-over-an-array-in-javaκαι ψάξε και διάβασε και λίγο μόνος σου για να πάρεις μία πιο πλήρη εικόνα και να τριφτείς και λίγο με την γλώσσα. 

Δημοσ.

Κάτι τέτοιο;

// char[][] yourArray

String result = "";
for(char[] row : yourArray)
{
    result += String.valueOf(row);
}
 

Αν και ένα StringBuilder θα ήταν ταχύτερο

προσπαθησα αυτο τον τροπο αλλα μου χαλαει το pattern και δεν μπορω να καταλαβω τι φταιει... θελει για καθε input που δινω να βγαζει ενα σχημα με * πχ για input 4 βγαζει:

   *

 * * *

 * * *

   *

για input 5: 

    *

  * * *

*   *  *

  * * *

     * 

το χω φτιαξει σε εναν δισδιαστατο πινακα απλα θελει το output να βγαινει σε καινουργιο παραθυρο με την εντολη που εβαλα πιο πανω η οποια παιρνει ενα string... αν μπορουσες να βοηθησεις θα σου ημουν υποχρεος :P

 

Στις OO γλώσσες υπάρχει η έννοια του container... κλάσεων που έχουν σχεδιαστεί για να έχουν μέσα άλλα δεδομένα. Αυτές προσφέρουν ευκολίες, όπως εγγυημένη ταχύτητα ψαξίματος (π.χ. HashMap στην Java), ευκολία στο να βάζεις και να βγάζεις δεδομένα/αντικείμενα κτλ. 

 

Ένας απλός πίνακας στην Java είναι μία δομή δεδομένων που δεν μπορεί να αλλάξει μέγεθος, δεν έχει ευκολίες στο να βγάζεις/βάζεις δεδομένα και η όποια αντιγραφή του σε άλλον πίνακα "κοστίζει" από πόρους. 

 

 

Η κλάση StringBuilder είναι αυτό που λέει το όνομά της. Χτίζει Strings. Εάν έχεις να φτιάξεις ένα string από κομμάτια, τότε και την κλάση String να χρησιμοποιήσεις, αυτή καλεί μεθόδους της StringBuilder. Οπότε, είναι γρηγορότερο να χρησιμοποιήσεις εξαρχής την StringBuilder. Επίσης, θαρρώ (εάν θυμάμαι καλά) πως με την StringBuilder μπορείς να φτιάξεις μεγαλύτερα String από αυτά που σου επιτρέπει η String.. 

 

 

Anywaaaay...

 

Για Array VS List δες εδώ (π.χ.): http://stackoverflow.com/questions/1589813/when-to-use-a-list-over-an-array-in-javaκαι ψάξε και διάβασε και λίγο μόνος σου για να πάρεις μία πιο πλήρη εικόνα και να τριφτείς και λίγο με την γλώσσα. 

ευχαριστω θα τα κοιταξω απλα επιδη το deadline τρεχει δεν με παιρνει τωρα να το αλλαξω απο array σε list και να ψαχνομαι παλι απο την αρχη... ασε που δεν μας εχει μιλησει καθολου για λιστες ακομα... 

Δημοσ.

Αφού δεν γράφεις Java και λες mpliax, τότε γιατί στην ευχή απαντάς και λες πίπες; Για να ανεβάσεις posts; Για να trolάρεις; Γιατί;

Μπας και αποτρέψω την άμοιρη ψυχή από το να μάθει java. Btw η ιδέα μου το μετατρέπει σε πίνακα Char (όχι string όπως ζητήθηκε, σορρυ).

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...