• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Java ---> alphabetische Sortierung

Status
Für weitere Antworten geschlossen.

Punse

Neues Mitglied
Hi, ich hab mal ne Frage und zwar wie kann ich Teilstrings in Java alphabetisch sortieren ?
Ich habs schon mit compareTo versucht aber irgendwie bin ich wohl zu dumm das richtig zu implementieren.

Hier mein Quellcode:


Code:
public class analyse{
    public static void main(String[] args){
        textobject text1 = new textobject("Hallo ich bin Hugo und ich habe ganz viele Hobbies. 
Ich reite gerne, fahre gerne Fahrrad und schwimmen kann ich auch. Aber am meisten 
Spass macht mir das Lesen, denn ich ich bin klug.");
        text1.makeequalletter();
        text1.aufspalt();
        text1.sortier();
        text1.ausgeben();
    }
}


class textobject{
    String eingegtext;
    String[] wordarray;
    
    textobject(String objekttext){   
        this.eingegtext = objekttext;
    }

    void makeequalletter(){
        eingegtext = eingegtext.toLowerCase();
    }

    void ausgeben(){
        for(int i=0; i<wordarray.length; i++){
            System.out.println(wordarray[i]);
        }
    }
    
    void aufspalt(){
        wordarray = eingegtext.split(" ");
    }

 [COLOR=Red]   void sortier(){
        int compareTo(wordarray a);
        }[/COLOR]
}
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
So wie ich das verstanden habe willst du eine Eingabe z. B. "B C D E A" sortieren und dann "A B C D" ausgeben. Hast du schon mal überlegt, denn String in Teile zu zerlegen, in ein Array zu packen, dies absteigend oder aufsteigend zu sortieren und wieder zusammenzufügen...? Ist in Java ganz leicht:

Code:
 import java.util.Arrays;
import java.util.Comparator;

public class Main implements Comparator<String>{

    public static void main(String[] args) {
        String eingabe = "Hallo, das ist ein Text, A B C D";
        eingabe = eingabe.replace(",", "");
        String[] strarr = eingabe.split(" ");
        
        Arrays.sort(strarr, new Main());
        for (int i = 0; i < strarr.length; i++) {
            System.out.println(strarr[i]);
        }
    }

    public int compare(String a, String b) {
        a = a.toLowerCase();
        b = b.toLowerCase();
        return a.compareTo(b)>0?1:0;
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Hallo,

schau mal hier ... ist vllt. nicht die beste Lösung aber ich hatte jetzt auch net soviel Zeit.

Code:
/**
 * @author sven bartak
 */
package de.svenbartak;

import java.util.Arrays;

public class SortExample 
{
  public static void main(String[] args)
  {
    TextObject textObject = new TextObject("Hallo ich bin Hugo und ich habe ganz viele Hobbies. Ich reite gerne, fahre gerne Fahrrad und schwimmen kann ich auch. Aber am meisten Spass macht mir das Lesen, denn ich ich bin klug.");
    
    System.out.println("String (not sorted) : " + textObject.getGivenString());
    
    textObject.splitGivenString();
    
    System.out.print("String (sorted) : ");
    
    for(int i=0; i<textObject.getGivenStringSorted().length; i++)
    {
      System.out.print(textObject.getGivenStringSorted()[i]);
    }
  }
}

class TextObject
{
  private String givenString = "";
  private String[] givenStringArray = {""};
  
  public TextObject(String givenString)
  {
    this.givenString = givenString;
  }
  
  public void makeStringToLowerCase()
  {
    this.givenString = this.givenString.toLowerCase();
  }
  
  public String getGivenString()
  {
    return this.givenString;
  }
  
  public String[] getGivenStringSorted()
  {
    Arrays.sort(givenStringArray);
    
    return givenStringArray;
  }
  
  public void splitGivenString()
  {
   this.givenStringArray = this.givenString.split(" "); 
  }
}

Gruß Sven
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben