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:
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(" ");
}
void sortier(){
int compareTo(wordarray a);
}
}
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:
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;
}
schau mal hier … ist vllt. nicht die beste Lösung aber ich hatte jetzt auch net soviel Zeit.
/**
* @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(" ");
}
}