Abfrage Zeilenumbruch+.+Zeilenumbruch

Alex89

Mitglied
Hallo zusammen,

ich programmiere zu Zeit eine kleine Java Anwendung, mit der man irgendwann mal eine Kommunikation zwischen zwei Hosts ermöglichen kann.

Ich hab folgendes Problem: Ich möchte dem Anwender die Möglichkeit geben, eine Nachircht mittels dem Befehl DATA+Nachricht,z.B. so

DATA Hallo das ist eine Nachricht mit
mehrern
Zeilen.

Die wird mittels einer while Schleife ermöglicht, ausserdem benutze ich noch ein paar Arrays usw.

Nun soll mal mittels "\n.\n" die Schleife verlassen könne, jedoch steht das \n hier für einen Zeilenumbruch also ein RETURN. Wie kann ich das abfarge?

MfG Alex89
Ps ich habe mit dem ASCII Code für RETURN versuch, will er aber nicht so recht schlucken.
 
Versuchs mal mit
Java:
 System.getProperty("line.separator");
statt mit ASCII - Return

Aber kommt ja auch noch draufan wie die einliest - schick doch mal den Code den du schon hast.
 
Komme erst morgen früh oder vllt. wieder an den Code. Aber schonmal danke. Ich lese mit Hilfe eines Buffered Reader ein, und trenne den String dann mit einem Tokenizer.
Aber ich schicke morgen oder vllt. heute Abend mal den Code.
 
Sry bin erst jetzt wieder an den Code gekommen.

Hier mal Meine Methode:

Java:
public void SendeModusEinlesenMitReturn() 
	{
		String [] sArray = new String[100];
				
		try
            {
                        BufferedReader input = new BufferedReader(
                        new InputStreamReader(System.in));
                        String eingabe="";
						
                        while(eingabe.contains("-_-")==false)
						{
                            eingabe = eingabe+input.readLine()+" ";
                        }
                        
						
                       // StringTokenizer st = new StringTokenizer("hallo maschaf fuhfu");
						int i=0;
												
						StringTokenizer st = new StringTokenizer(eingabe);
						while (st.hasMoreTokens()) 
						{							
							sArray[i]=st.nextToken();
							++i;
						}

				
						
			}
                 
				catch(IOException e)
                {
                        
                }
			Senden(sArray);
			
	}

Da Wo z.Z.: -_- steht wollte ich auf folgende prüfen "\n.\n" geht jedoch nich. Ich denke, da ich ja immer nur den gerade eingegebenen String überprüfe.

Gruß ALex
 
Du liest ja Zeilenweise ein, da kriegt man erstens nur eine Zeile ;-) und zweitens auch keine Zeilenumbrüche.
Du kannst mit dem Vorgehen nur Überprüfen, ob in der Zeile nur ein Punkt enthalten ist:
Java:
eingabe.equals(".")
 
Ja ist mir auch aufgefallen:lol:.

Was schlägst du vor. Ich habe jetzt meine Senden-Methode soweit abgeändert, dass ich ihr einfach noch einen String mit der Nachricht übergebe(dann wird bei der ausgabe auch ein Zeilenumbruch dargestellt), jedoch weiss ich immernoch nicht, wie ich als Abbruchkriterium das "\n.\n"

Gruß Alex
 
Wenn Du sowas sendest "\n.\n" wäre beim das Abbruchkriterium ja readLine().equals("."), als nur ein Punkt in der Zeile.
Wenn das nicht passt, musst Du Dir halt ein passende Abbruchkriterium definieren, was in der normalen Nachricht nicht vorkommen kann/darf (z.B. leere Zeile, ENDOFDATA...)
 
Ja ok dann reagiert er aber nur auf den Punkt, d.h. wenn ich einen Satz schreibe und am Ende einen Punkt schreibe, würde er ja schon abbrechen.
Ich habe jetzt noch eine andere Idee, ich werde eine neue Fkt. schreiben und mit concat() arbeiten, hat bei einem Kommilitonen auch fkt.

Trotzdem danke.
 
Den Zeilenumbruch fängt ja der BufferedReader bereits ab. Zur Erinnerung: Du liest zeilenweise ein.
Die
Code:
while(!eingabe.equals("."))
bricht also ab, wenn in einer Zeile nur ein Punkt steht, sofern da auch nur noch ein Leerzeichen oder ".." steht läuft die Schleife weiter.
 

Neue Themen


Zurück
Oben