Erste Schritte Längstes Wort eines Strings herausfinden

Haloschlumpf

Mitglied
Hallo,
ich sitze nun schon länger an dieser Aufgabe. Ich soll aus einem String das längste Wort herausfinden.
Ich denke man sollte zu erst die Anzahl der Leerzeichen bestimmen. Dann die Position der Leerzeichen.
Der nächste Schritt wäre die Differenz der Positionen des Leerzeichens (um somit das längste Wort zu erkennen --> hätte also den größten Wert bei der Differenz)
und genau hier hänge ich momentan.
Der letzte Schritte wäre dann noch die Ausgabe des Wortes. Also einen substring von Leerzeichenposition bis Leerzeichenposition -1 (die beiden Leerzeichenpositionen mit der gößten Differenz).
Java:
package aufg;

public class TextObjekt {


	public String laengstesWort(String x)
	{
		String leer =" ";
		int zähler=0;
	
	
	for (int i =0;i<x.length();i++)	
	{
	 String buchstabe = x.substring(i,i+1);			
	 if     (buchstabe.equals(" "))  		
		{
			zähler=zähler+1;
		}		
	}
		
	int [] leerzeichenPos = new int [zähler];
	int j=0;
	while (j < zähler)
	{
		for (int i =0;i<x.length();i++)	
		{
		 String buchstabe = x.substring(i,i+1);			
		 if     (buchstabe.equals(" "))  		
			{
			 int position = x.indexOf(leer,i );
			
		
			 leerzeichenPos[j]=i;
		


			 j=j+1;
			 
			 
			}		


		 }
	}


	
	
	
	
		
	return x;
	}
	
	
	
	public static void main (String args[])
	{
		TextObjekt text = new TextObjekt();
		String x = text.laengstesWort("Vom Eise befreit ist der Strom");
		
	}
}
 
Java:
String[] parts = text.split(" ");
Dadurch hast du nun ein Array aus Worten.
Mit einer Schleife kannst du dann über die Wörter iterieren und gucken welches das längste ist
 
mein geschenk ;-)
Java:
int laenge =0;
    
    public String laengsterString( String woerter){
        String[] strings =woerter.split( " ");
        String laengsterString ="";
        for( String string : strings){
            if( string.length() > laenge){
                laenge =string.length();
                laengsterString =string;
            } else if( string.length() ==laenge){
                System.out.println("zwei gleichlange Strings");
            }
        }
        return laengsterString;
    }
 
Vielen Danke für die Hilfe, jedoch ist es meine Aufgabe das längste Wort herauszufinden ohne Befehle wie split. Lediglich mit indexOf().
Vielleicht kann mir jemand einen kleinen Denkanstoß geben.
 
Dann kannst du immer von leerzeichen zu leerzeichen springen und immer prüfen, ob das aktuelle Wort (also das zwischen zwei leerzeichen) länger ist als das bisher längste Wort
 
Java:
public String laengsterStringOhne( String satz){
        String temp ="";
        int laenge, index;
        ArrayList<String> woerter =new ArrayList<>();
        for( int i =0; i <satz.length(); i++){
            if( satz.charAt( i) != ' '){
                 temp +=satz.charAt( i);
            } else{
                woerter.add( temp);
                temp ="";
            }
        }
        
        laenge =woerter.get( 0).length();
        index =0;
        for( int i =1; i< woerter.size()-1; i++){
            if( laenge <=woerter.get( i).length()){
                index =i;
            }
        }
        return woerter.get( index);
    }
 
Zuletzt bearbeitet:

Zurück
Oben