Ausgabe aus WHILE Schleife in String speichern?

MAGIo

Aktives Mitglied
Ich habe eine Klasse, die innerhalb einer While Schleife eine Ausgabe mit system.out.print(matcher.group(0)) macht.

Nur leider ist es mir bisher nicht gelungen die Ausgabe als String zur späteren Nutzung in einer andere Klasse zu speichern. Wie krieg ich das hin? Nach der While Schleife ist die Variable bzw. die Ausgabe leer, daher müsste ich die Konsolenausgabe gespeichert kriegen.

Bitte um hilfe
 
Wie denn speichern? Innerhalb des Programms reicht doch ein einfaches
Java:
String ausgabe = matcher.group(0);
Das dann als Feld in einer Klasse und das sollte reichen.

Oder möchtest du persistent in einer Textdatei speichern? Dann nimm einen BufferedWriter/FileWriter, schreib die Zeile rein und lies sie später wieder aus.
 
Konkret geht es genau um diesen Fall hier, nach der While Schleife ist die Variable ja nicht mehr verfügbar, bzw. die Gruppe.

Irgendwo ist mein Denkfehler

Java:
public class HTMLparser {
    public static void main(String[] args) throws Exception {
	    
    	URL dyndns = new URL("http://checkip.dyndns.org/index.html/");
    	BufferedReader in = new BufferedReader(new InputStreamReader(dyndns.openStream()));
    	String inputLine,extIP;
		
		while ((inputLine = in.readLine()) != null)
		{ 				
			Pattern pattern = Pattern.compile("\\d+\\w*[^(:|<|>|/)]");
			Matcher matcher = pattern.matcher(inputLine);
			System.out.print("externe IP: ");
				while(matcher.find())
				{
					System.out.print(matcher.group(0));
				}		extIP = matcher.group(0);
		}

		MailWithPasswordAuthentication smtp = new MailWithPasswordAuthentication();
		MailWithPasswordAuthentication.bodys = extIP;
        smtp.run();
		in.close();			  
			                }         
}
 
Hallo MAGIo,

Ich hab den Code jetzt nur kurz überflogen, vermute aber dass die Zuweisung an extIP in Zeile 16
innerhalb der Schleife (statt wie bei Dir hinter der Schleife) stattfinden sollte.

Dann würde extIP allerdings bei jedem Schleifendurchlauf überschrieben werden.

Um das zu vermeiden bietet sich an, extIP als StringBuilder zu deklarieren und dann in der
Schleife die IPs per extIP.append(...) anzuhängen.

Zeile 20 müsste dann in ...
[JAVA=20]MailWithPasswordAuthentication.bodys = extIP.toString();[/code]
...geändert werden.

Ich hoffe, ich liege nicht komplett daneben und das hilft Dir weiter.

VG ROlf
 

Zurück
Oben