Rekursive Fkt.

Status
Nicht offen für weitere Antworten.

Javac

Mitglied
Hallo,

ich möchte eine Fkt schreiben, die überprüft ob ein String mehr als 160 Zeichen hat. Wenn ja, dann soll von hinten jeweils ein Land nach dem Komma abgeschnitten werden bis es passt.

Einmal klappt das ganze auch wunderbar, leider kann es dann halt sein das der String immer noch mehr als 160 Zeichen hat. D.h. ich muss die Fkt dann noch einmal aufrufen. Aber wie?

Code:
public class MessageLength {
	
	public static String newMessage;
	public static String msg, oldMessage;
	
	public static String cutMessage(String message) throws StringIndexOutOfBoundsException
	{
		int j = 0;
		int letztes = 0;
		int test = 0;
		
		
		if(message.length() > 160)
		{
			letztes =  message.length() -1;
			
			for(int i = letztes; i >= 0; i--)
			{
				if(message.charAt(i) == ',')
				{	
					letztes = i;
					break;
				}
			}
			for(int i = 0; i < letztes; i++)
			{
				newMessage = newMessage + message.charAt(i);
				newMessage = newMessage.replace("null","");
			}
			//System.out.println(newMessage);
		}
		else
		{
			newMessage = message;
		}
		return newMessage;
	}

	
	public static void main(String[] args) {
		
		
		oldMessage = "Test String, Dies ist ein StringStringStringStringStringStringStringStringStringStringStringStringStringStringString: Land1, Land2, Land3, Land4, Land5, Land6, Land7, Land8, Land9, Land10, Land11, Land12";
		msg = MessageLength.cutMessage(oldMessage);
		System.out.println(msg);

	}

}

Achja, die Anweisung
Code:
newMessage = newMessage.replace("null","");
mache ich weil sonst am Anfang der Ausgabe null steht... Vielleicht weiss auch einer woher das kommt. Ich danke euch.
 
Code:
public String cutMessage(String message) {
  if (message.length() > 160) {
    int last = message.lastIndexOf(',');
    return last==-1 ? message : cutMessage(message.substring(0, last));
  } else
    return message;
}

Achtung: Nicht compiliert.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben