12. december 2003 - 21:25Der er
17 kommentarer og 1 løsning
Input skal ordnes alfabetisk.
Hvad skal der til, for at input (ét ord ad gangen) i et JTextField ved tryk på en button bliver ført ned i et JTextArea, hvor input derefter bliver ordnet alfabetisk og med ét ord på hver linie? Se gerne ud fra nedenstående kode, om det kan lade sig gøre:
import java.awt.*; import javax.swing.*; import java.awt.event.*; // til ActionListener
public class Evaluering extends JApplet implements ActionListener { JLabel label; JTextField Txt1; JButton Knap; JTextArea Txt2;
public void init() { JPanel contents = (JPanel)getContentPane();
contents.setBackground(Color.white);
label = new JLabel("Input"); Txt1 = new JTextField(); Knap = new JButton("Alfabetisér!"); Txt2 = new JTextArea();
Jo tak, det virker fint... Men jeg tænkte på, om du måske lige kunne forklare mig den lidt nærmere? Jeg har selv rodet med det, men kunne ikke få det til at virke...
// først appender vi det nye ord til enden af de eksistende ord // og så splitter vi op i et array af ord String input = Txt1.getText(); String[] words = (Txt2.getText() + input).split("\n"); // vi sorterer ordene Arrays.sort(words); // vi samler de sorterede ord til en ny streng med linieskift mellem StringBuffer sb = new StringBuffer(); for(int i = 0; i < words.length; i++) { sb.append(words[i]); sb.append("\n"); } // vi putter den nye streng ind Txt2.setText(sb.toString()); // vi blanker input hvor vi skal indtaste et nyt ord Txt1.setText("");
ja, okay, så er jeg med. Jeg skal egentlig også have en metode til at "vende" ordene om, så de bliver ordnet alfabetisk bagfra, men stadig er skrevet normalt. Det vil jeg dog lige rode med selv først, for jeg har en lille idé om det... Kan det passe, at det kan gøres med metoden reverseIt?
Hmm, det er stadig ikke helt, som det burde være. Det er kun ord med samme stamme, der bliver ordnet alfabetisk bagfra, fx:
sortering sorterinh sorterinn sorterinå spise
Hvor "spise" egentlig burde blive placeret forrest idet "es" kommer før "gn", "hn", "nn" og "ån". Her bliver det sorteret således at "sp" kommer efter "so", altså alfabetiseret forfra...
Den har jeg ikke helt fanget... er der noget galt i ovenstående kode? For det er den jeg prøver med. Eller mangler der noget i den? Uanset hvad jeg gør, så ryger "spise" efter "sorterinå".
Men julegave indkøb med konen det meste af dagen kan altså også slå en mand ud.
:-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.