# String in URL umwandeln



## u6g58h8i67roi (28. Nov 2007)

mein programm liest aus einer hp nen quelletxt aus, in diesem steht eine url, nachdem ich den schrott um die url weggeschafft hab, schaffe ich es nun sogar mir eben diese url ausgeben zu lassen, ich möchte mit der url weiterarbeiten, aber wenn ich dann zb. 

URL url3 = url2;

mache dann kackt das alles ab und der sagt mir da isn string, aber der braucht halt ne url, wie mache ich jetzt aus dem soeben eingelesenen string eine URL ? das muss doch möglich sein, bei google , boardsuche und so hab ich nix relevantes gefunden


----------



## SlaterB (28. Nov 2007)

weil sich niemand die Mühe macht, zu wiederholen, was ganz sauber in der API erklärt wird:
http://java.sun.com/javase/6/docs/api/java/net/URL.html
(siehe vor allem Constructor Summary)

edit: naja, fast niemand


----------



## DocRandom (28. Nov 2007)

Hi!
Guck mal da rein!

 [Edit:] Mist zu spät! [/Edit]
lg
DocRandom


----------



## u6g58h8i67roi (28. Nov 2007)

danke an den zuspätkommer, damit kann ich mehr anfangen, die doku kenn ich, aber da bin ich auch net schlau draus geworden =)


----------



## u6g58h8i67roi (28. Nov 2007)

naja das klappt immernoch nicht besser als vorher ich hab jetzt

url = new URL (read);

und ich bekomm immernoch ne MalformedURLException, die bekomm ich aber schon seit gestern, langsam gewöhn ich mich dran =)

kann mir mal einer sagen was an 

http://scripts.knuddels.de/ww/knuddels.de/65/dnaofdeath.html

Malformed ist?

ich mein das ist doch ne ganz normale scheiß internetadresse >-<


----------



## SlaterB (28. Nov 2007)

deswegen funktionierts ja auch..


```
public class Test
{

    public static void main(String[] args)
        throws Exception
    {
        String st = "http://scripts.knuddels.de/ww/knuddels.de/65/dnaofdeath.html";
        URL url = new URL(st);
        System.out.println(url.getHost());
    }
}
```


----------



## u6g58h8i67roi (28. Nov 2007)

ja aber die url ist ja in dem String read gespeichert

und wenn ich ...blablabla...

 ach scheiß drauf ich postes den ganzen code einfach

der fehler tritt ja nur zur laufzeit auf, ich weiß auch net worans liegt, kann mir einer helfen?



```
public static void main(String[] berechnung) throws Exception {
    
    
     BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
      String nick = "";
      String read ;
      URL url;
      
      int i = 0;
      int b = 0;
      
      System.out.println("Bitte nick eingeben");

      nick = "http://knuddels.de/ww/"+br0.readLine(); 
      
      url = new URL(nick);
      System.out.println("Userinput: "+url);
      BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      System.out.println("");
      while((read = br1.readLine()) != null)
      
      {
         i++;
         System.out.println(i+"\t| "+read);
         
         read = read.replace ("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
         read = read.replace ("\"></HEAD></HTML>", "");
         
         
         System.out.println(read);
      }
    
      
      url = new URL (read);
                    
      BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      while((read = br2.readLine()) != null){
          b++;
         System.out.println(b+"\t| "+read);
         
      }
      
      
        
      
      
     br0.close();
     br1.close();
      
    }
```


----------



## SlaterB (28. Nov 2007)

ersetzte 
url = new URL (read); 

durch

System.out.println("read ist: "+read);
url = new URL (read); 

schon bist du schlauer,
bzw. du hast ja schon ähnliche Ausgaben, dann müsstest du doch wissen, was read ist?
wenn die Ausgabe wie http://scripts.knuddels.de/ww/knuddels.de/65/dnaofdeath.html 
scheint,
dann verwende String.equals(String) zum Vergleich, um dich vom Unterschied zu vergewissern,
verwende charAt() um Buchstabe für Buchstabe zu vergleichen und so den Unterschied festzustellen


----------



## u6g58h8i67roi (28. Nov 2007)

0o read ist null wie kommt denn das jetzt?

zwei zeilen drüber ist es doch noch mein heißgeliebter string in form der internetadresse


----------



## DocRandom (28. Nov 2007)

Weil Du solange liest, bis der Stream zu ende ist, ergo 
	
	
	
	





```
read == null
```

lg
DocRandoml


----------



## u6g58h8i67roi (28. Nov 2007)

leute? ihr seid klasse =)

habs jetzt so gelöst:


```
public static void main(String[] berechnung) throws Exception {
    
    
     BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
      String nick = "";
      String read ;
      URL url;
      
      int i = 0;
      int b = 0;
      
      System.out.println("Bitte nick eingeben");
      nick = "http://knuddels.de/ww/"+br0.readLine(); 
      
      url = new URL(nick);
      System.out.println("Userinput: "+url);
      BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      System.out.println(url);
      while((read = br1.readLine()) != null)
      
      {
         i++;
         System.out.println(i+"\t| "+read);
         
         read = read.replace ("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
         read = read.replace ("\"></HEAD></HTML>", "");
         
         
         System.out.println(read);
      
    
      
      //url = new URL (read);
        System.out.println("read ist: "+read);
        url = new URL (read);
            
      BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      while((read = br2.readLine()) != null){
          b++;
         System.out.println(b+"\t| "+read);
         
      }
      }
      
        
      
      
     br0.close();
     br1.close();
      
    }}
```

nun werd ich mich mal an die nächste aufgabe machen =)


----------



## u6g58h8i67roi (28. Nov 2007)

ich bekomme immernoch eine exception


```
Exception in thread "main" java.io.IOException: Stream closed
        at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
        at java.io.BufferedReader.readLine(BufferedReader.java:292)
        at java.io.BufferedReader.readLine(BufferedReader.java:362)
        at DNA.java.Main.main(Main.java:58)
DNAofDeath27.02.2004[/B]<FONT COLOR="000000"> um 23:28:22 bei Knuddels registriert und seitdem schon 
[B]127.208[/B]<FONT COLOR="000000"> Minuten hier verbracht.

[img]../../images/py_r.gif[/img] &Er war zuletzt am [B]27.11.2007[/B]<FONT COLOR="000000"> 21:39:05 im Channel 
[B]Flirt 21+[/B]<FONT COLOR="000000"> hier
 & & &

DNAofDeath hat...
 &[img]../../images/gt.gif[/img] [B]<FONT COLOR="#FF0000">11.760<FONT COLOR="#000000" SIZE=2>[/B]<FONT 
COLOR="000000"> Knutschflecken...
 & & & & & & & &[img]../../images/gt.gif[/img] <FONT 
COLOR="#FF0000">[B]5<FONT COLOR="#000000" SIZE=2>[/B]<FONT COLOR="000000"> [url="http://www.knuddels.de/shop"][img]../../images/present.gif[/img][/url] 
erhalten
 & & & & & & & &[img]../../images/gt.gif[/img] [B]<FONT COLOR="#FF0000">12<FONT 
COLOR="#000000" SIZE=2>[/B]<FONT COLOR="000000"> [img]../../images/rose.gif[/img] erhalten 

 & & & & & & & &[img]../../images/gt.gif[/img] [B]<FONT COLOR="#FF0000">32<FONT 
COLOR="#000000" SIZE=2>[/B]<FONT COLOR="000000"> Mentor Punkte
 & & & & & & & &[img]../../images/gt.gif[/img] [B]<FONT COLOR="#FF0000">[url="http://www3.knuddels.de:8080/videoblog/vb_start.pl?d=lolipop"]2[/url][/B]<FONT 
COLOR="#FF0000"><FONT COLOR="#000000" SIZE=2> [url="http://www3.knuddels.de:8080/videoblog/vb_start.pl?d=lolipop"]lol*ipop-Punkte[/url] [url="http://www3.knuddels.de:8080/videoblog/vb_start.pl?d=lolipop"][img]../../images/sm_classicII_02.gif[/img][/url]
 & & & & & & & &[img]../../images/gt.gif[/img] 
Mafiarang: [B]<FONT COLOR="#FF0000">Amateur<FONT COLOR="#000000" SIZE=2>[/B]<FONT 
COLOR="000000">
 & & & & & & & &[img]../../images/gt.gif[/img] und kann noch [B]<FONT 
COLOR="#FF0000">nicht<FONT COLOR="#000000" SIZE=2> knuddeln[/B]<FONT COLOR="000000">! 
&

Er hat sein [img]../../images/fullheart.gif[/img] an [url="../188/strawberry123.html"]Strawberry123[/url] vergeben.
Und die [img]../../images/fullheart.gif[/img] [img]../../images/halfheart.gif[/img] von [url="../188/strawberry123.html"]Strawberry123[/url], [url="../104/schnuggi1984.html"]schnuggi1984[/url] 
erhalten.
Wieder Stammi seit dem 01.07.2007.
[B]14 Monate Stammchatter[/B]<FONT 
COLOR="000000">: 9/05, 11-12/05, 2/06, 11/06 - 3/07, 7-11/07
<HR>[B]Geschlecht[/B]<FONT 
COLOR="000000">: &männl. [img]../../images/male.gif[/img] &
[B]Alter[/B]<FONT 
COLOR="000000">: &21 (verifiziert) &
[B]Vergeben[/B]<FONT COLOR="000000">? &Glücklich Vergeben 
&
[B]Lieblingschannel[/B]<FONT COLOR="000000">: &18+ &
[B]Motto[/B]<FONT 
COLOR="000000">:
<FONT COLOR="#0000FF"><FONT style="font-size:15pt">[B][I]Du willst eine stylische 
seite?
Kennst dich aber nicht aus?
kein problem meld dich bei mir und wir machen das![img]../../images/sm_flowerpower_03.gif[/img]
<FONT COLOR="#FF0000"><FONT 
style="font-size:20pt">[/B]<FONT COLOR="#FF0000">" [B]
<FONT style="font-size:20pt"><FONT 
COLOR="#0000FF">[/B]<FONT COLOR="#0000FF">Ein Mann definiert sich durch seine taten, nicht durch seine 
erzählungen.
<FONT COLOR="#FF0000"><FONT style="font-size:16pt">Flooden ist das Einfügen von enormen 
Textmassen in einen Chat; dies stört den Lesefluss
<FONT style="font-size:20pt"><FONT 
COLOR="#00AC00">[B]LOL
also hört auf das spammen zu nennen! [/b][/i]<FONT COLOR="#000000" 
size=2><HR>



Java Result: 1
```


----------



## SlaterB (28. Nov 2007)

und an welcher Stelle bitte?

(danke übrigens für Zerstörung des Layouts, man kann Postings auch editieren..)



```
public class Test
{

    public static void main(String[] args)
        throws Exception
    {
        String read = "http://scripts.knuddels.de/ww/knuddels.de/65/dnaofdeath.html";
        URL url = new URL(read);

        BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));

        int b = 0;
        while ((read = br2.readLine()) != null)
        {
            b++;
            System.out.println(b + "\t| " + read);

        }
        br2.close();
    }


}
```

läuft, 63 Zeilen


----------



## u6g58h8i67roi (28. Nov 2007)

ich kann nix dafür das das forum keinen automatischen zeilenumbruch ab ner bestimmten länge hat bei codes


mein code sieht mittlerweile wie folgt aus :


```
package DNA.java;

import java.awt.*;
import java.text.*;
import java.io.* ;
import java.util.*;
import java.lang.*;
import javax.swing.*;
import java.net.* ;

public class Main {
    
    
    public Main() {}
    
    
    public static void main(String[] berechnung) throws Exception {
    
    
     BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
      String nick = "";
      String read ;
      URL url;
      String blah = "";
      int i = 0;
      int b = 0;
      
      System.out.println("Bitte nick eingeben");
      nick = "http://knuddels.de/ww/"+br0.readLine(); 
      
      url = new URL(nick);
      //System.out.println("Userinput: "+url);
      BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      //System.out.println(url);
      while((read = br1.readLine()) != null){
          
          
          
         i++;
         System.out.println(i+"\t| "+read);
         
         read = read.replace ("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
         read = read.replace ("\"></HEAD></HTML>", "");
         
         
         //System.out.println(read);
      
    
      
      //url = new URL (read);
        //System.out.println("read ist: "+read);
        url = new URL (read);
            
      BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      
      while((read = br2.readLine()) != null){
        
          b++;
         System.out.println(b+"\t| "+read);
        
         
         
          if (read.contains ("<FONT FACE=\"Arial\">
[B]"))//(b == 45)
               {
                   
                   br2.close(); 
                   read = read.replace("<FONT FACE=\"Arial\">
[B]", "");
                   //read = read.replace ( nick, "");
                   read = read.replace ("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\"> hat sich am [B]", "");
                   
                   if (read.contains ("http://spenden.knuddels.de"))
                   {
                       read = read.replace ("<a href=\"http://spenden.knuddels.de\" target=_blank><img border=0 src=\"../../images/ico_ribbon.gif\"></a> ", "") ;
                       read = read.replace ("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\">hat sich am [B]", "");
                       
                   }
                   
                   
                   System.out.println("da haste den scheiß " + read);
                   String datum = read.substring( 10, 20);
                   System.out.println(datum);
                   String onMin = read.substring(104, 111);
                   System.out.println(onMin);
                   
                   
                   System.out.println(read);
                     
               }
         
            } 
      
      
      }
      
        
      
      
     //br0.close();
     //br1.close();
     
    }}
```


----------



## SlaterB (28. Nov 2007)

du kannst dein Posting editieren und selber paarmal Enter drücken,
ist das zuviel verlangt?

der Fehler ist
 br2.close(); 
mitten in der Schleife,

warum sollte 
read = br2.readLine()
danach noch normal funktionen?


----------



## u6g58h8i67roi (28. Nov 2007)

ja aber wenn das vorhanden ist soll der doch an der stelle den reader schleißen da ich ja mit der zeile arbeiten muss

ich editier mal eben =)


----------



## SlaterB (28. Nov 2007)

möchtest du zu diesem Zeitpunkt auch die Schleife beenden?
dann setzte ein break; am Ende dieses ifs,
oder ändere die Schleifenbedingung:

boolean closed = false;
while(!closed && ((read = br2.readLine()) != null)){ 
...
if {
....
closed = true;
}
}


----------



## u6g58h8i67roi (28. Nov 2007)

hmm ich kann die schleife nicht beenden an dem punkt

dann wird der ganze rest ja ins nirvana verschwinden

und der ist sehr wichtig


----------



## SlaterB (28. Nov 2007)

tja, wenn du den Reader closed, dann ist der Rest verloren,
ob du die Schleife nun beendest oder nicht


----------



## u6g58h8i67roi (28. Nov 2007)

ja aber ich brauche ja nur diese eine zeile die er da unter anderem ausliest, und wenn diese zeile den bestimmten inhalt hat soller ja net mehr weiter einlesen


----------



## SlaterB (28. Nov 2007)

das widerspricht wiederum 'dann wird der ganze rest ja ins nirvana verschwinden [..]  ist [aber] sehr wichtig'

du drehst dich im Kreis..


----------



## u6g58h8i67roi (28. Nov 2007)

naja den rest kann ich ja nicht ausserhalb der schleife machen weil dann wiederum verschwinden die variablen die in der schleife gesetzt wurden ins nirvana oder irre ich mich?


----------



## SlaterB (28. Nov 2007)

mit Rest meinst du also nicht den Rest der Daten im BufferedReader, 
sondern den Rest des Codes im if-Block?

na das ist ja was anderes,
wie gesagt sollte das break erst am Ende des if-Blocks stehen
oder eben in der Schleifen-Bedingung kurz vor der unvermeidlichen Exception


----------



## u6g58h8i67roi (28. Nov 2007)

siehste wie blöd ich bin? 

ich kannte die syntax break schon, aber war zu dumm um die anzuwenden, und wenn ich mein nächstes problem sehe bekomm ich das kotzen:

jemand soll einen string eingeben der einen nickname darstellt ,dieser string ist immer unterschiedlich lang.
dann soll (momentan) noch das registrierdatum und ein bis zu 9 stelliger string ausgelesen werden und anschließend ausgegeben werden (im endprogramm sollen diese daten in eine berechnung eingefügt werden).

jetzt hab ich ja hier mein problem schön gelöst in dem ich die daten einfach aus dem stream auslese,

                   String datum = read.substring( 10, 20);
                   System.out.println(datum);
                   String onMin = read.substring(104, 111);
                   System.out.println(onMin);

so aber diese werte kann ich getrost auskommentieren wenn der nick (so wie es im moment ist) eine andere zeichenlänge als 10 hat, denn dann kommt aus datum und onMin nur kauderwelsch raus weiler ja dann die falsche stelle ausliest

wie kann ich sonst noch aus dem stream die beiden werte auslesen?


----------



## SlaterB (28. Nov 2007)

wenn sich nur Buchstaben und Zahlen ohne Bedeutung aneinenderreihen, dann weiß auch Java von nichts,

wenn die Werte dagegen irgendein Format haben (HTML-Tags, Leerzeichen, Komma usw.)
dann kann man den String analysieren und Datengrenzen finden,
String.indexOf(String) z.B. hilft


----------



## u6g58h8i67roi (28. Nov 2007)

<FONT FACE="Arial">
*DNAofDeath<FONT COLOR="#000000" SIZE=2>*<FONT COLOR="000000">

 hat sich am
*27.02.2004*<FONT COLOR="000000"> um 23:28:22 bei Knuddels registriert und seitdem schon 
*127.208*<FONT COLOR="000000"> Minuten hier verbracht.







 &Er war zuletzt am *27.11.2007*<FONT COLOR="000000"> 21:39:05 im 
Channel *Flirt 21+*<FONT COLOR="000000"> hier
 & & &

DNAofDeath 
hat...
 &
	

	
	
		
		

		
		
	


	


*<FONT COLOR="#FF0000">11.760<FONT 
COLOR="#000000" SIZE=2>*<FONT COLOR="000000"> Knutschflecken...
 & & & & & & & &
	

	
	
		
		

		
		
	


	




 <FONT COLOR="#FF0000">*5<FONT 
COLOR="#000000" SIZE=2>*<FONT COLOR="000000"> 

 erhalten
 & & & & & & & &
	

	
	
		
		

		
		
	


	


*<FONT COLOR="#FF0000">12<FONT COLOR="#000000"
 SIZE=2>*<FONT COLOR="000000"> 
	

	
	
		
		

		
		
	


	




 erhalten 
 & & & & & & & &
	

	
	
		
		

		
		
	


	


*<FONT 
COLOR="#FF0000">32<FONT COLOR="#000000" SIZE=2>*<FONT COLOR="000000"> Mentor Punkte
 & & & & & & & &
	

	
	
		
		

		
		
	


	


*<FONT 
COLOR="#FF0000">2*<FONT COLOR="#FF0000"><FONT COLOR="#000000" SIZE=2> lol*ipop-Punkte 


 & & & & & & & &
	

	
	
		
		

		
		
	


	




 Mafiarang: *<FONT COLOR="#FF0000">Amateur<FONT COLOR="#000000" 
SIZE=2>*<FONT COLOR="000000">
 & & & & & & & &
	

	
	
		
		

		
		
	


	




 und kann noch *<FONT COLOR="#FF0000">nicht<FONT COLOR="#000000" 
SIZE=2> knuddeln*<FONT COLOR="000000">! &

Er hat sein 
	

	
	
		
		

		
		
	


	




 an Strawberry123 vergeben.
Und die








 von Strawberry123, schnuggi1984 
erhalten.
Wieder Stammi seit dem 01.07.2007.
*14 Monate Stammchatter*<FONT COLOR="000000">: 9/05, 11-12/05, 2/06, 11/06 - 3/07, 7-11/07
<HR>*Geschlecht*<FONT 
COLOR="000000">: &männl. 
	

	
	
		
		

		
		
	


	




 &
*Alter*<FONT 
COLOR="000000">: &21 (verifiziert) &
*Vergeben*<FONT COLOR="000000">? &Glücklich Vergeben &
*Lieblingschannel*<FONT COLOR="000000">: &18
+ &
*Motto*<FONT COLOR="000000">:
<FONT COLOR="#0000FF"><FONT 
style="font-size:15pt">*Du willst eine stylische seite?
Kennst dich aber nicht aus?
kein problem meld dich bei mir und wir machen das!
	

	
	
		
		

		
		
	


	



<FONT 
COLOR="#FF0000"><FONT style="font-size:20pt">*_<FONT COLOR="#FF0000">" *
<FONT style="font-size:20pt"><FONT COLOR="#0000FF">*<FONT COLOR="#0000FF">Ein Mann definiert sich durch 
seine taten, nicht durch seine erzählungen.
<FONT COLOR="#FF0000"><FONT style="font-size:16pt">Flooden ist das Einfügen von enormen Textmassen in einen Chat; dies stört den Lesefluss
<FONT 
style="font-size:20pt"><FONT COLOR="#00AC00">*LOL
also hört auf das spammen zu nennen! *_<FONT COLOR="#000000" size=2><HR>




das ist der string den ich bei meinem eigenen nick auslese

aber 1. kann der erste teil immer anders sein weil nicht bei jedem user das hier vorhanden ist :

<a href="http://spenden.knuddels.de" target=_blank>
	

	
	
		
		

		
		
	


	




bis auf das gerade erwähnte sollter dieser teil 

<FONT FACE="Arial">
*DNAofDeath<FONT COLOR="#000000" SIZE=2>*<FONT COLOR="000000">

 hat sich am
*27.02.2004*<FONT COLOR="000000"> um 23:28:22 bei Knuddels registriert und seitdem schon 
*127.208*<FONT COLOR="000000"> Minuten hier verbracht.






 &Er war zuletzt am *27.11.2007*<FONT COLOR="000000"> 21:39:05 im 
Channel *Flirt 21+*<FONT COLOR="000000"> hier
 & & &

bei allen usern gleich sein, nur halt ohne das spendenzeugs weil halt net jeder user gespendet hat 

das zeug was danach kommt ist bei JEDEM user unterschiedlich


----------



## SlaterB (28. Nov 2007)

ich zumindest werde dieses fachliche Problem nicht für dich lösen


----------



## u6g58h8i67roi (28. Nov 2007)

naja zum teil hab ichs jetzt ja schon gelöst, ich bräuchte halt nur nen tipp wie das auch mit anderen nicks ausser meinem geht >-<

haste keinen bock das mit mir zu lösen oder weißte einfach net wies geht ? xDDD

ich frag nur aus neugier xD keine der antworten würde ich persönlich nehmen


----------



## u6g58h8i67roi (28. Nov 2007)

ach ja wenn ers net lösen will/kann dann würde ich jemand anderen darum bitten sich meiner anzunehmen ,wie gesagt, oft ist es nur der schubs in die richtige richtung oder (wie oben) mich an ne syntax zu erinnern xD


----------



## SlaterB (28. Nov 2007)

es ja gerade keine Syntax oder Exception oder ähnliches, sondern Überlegung a la
"wenn '<a href xy' gefunden, dann Ende der Usernames ein Zeichen davor" 

das ist deine Aufgabe, das ist kein Problem sondern etwas zum Nachdenken,

wenn du dich für etwas entschieden hast und wieder eine Java-Frage hast a la
"wie finde ich die Position von '<a href xy'  in String z heraus?",
dann kann man wieder überlegen, aber eigentlich wäre das auch was für ein Lehrbuch


----------



## u6g58h8i67roi (28. Nov 2007)

na das ist doch der schubs den ich meinte xD ich werd mich mal dransetzen und mir gedanken machen


----------



## u6g58h8i67roi (28. Nov 2007)

kann ich nicht einfach die zeichen des nicknames zählen lassen und dann die substring anweisungen daran anpassen? weil diese verschieben sich ja dann immer nur um ein paar zeichen nach hinten oder nach vorne !

interesant zu wissen ist auch das der nick maximal 24 zeichen länge hat oder?


----------



## SlaterB (28. Nov 2007)

ich persönlich weiß nichts von deinem Vorhaben und kann da kein Java-Problem herauslesen 

Zeichen zählen und Substring anpassen klingt aber gut, wenn du die Anzahl der Zeichen des Nicknames zählen kannst


----------



## u6g58h8i67roi (28. Nov 2007)

ja und genau da liegt mein problem, jetzt habe ich zwar nach einigem googlen herausgefunden wie ich mit javascript die maximale zeichenlänge eines textfeldes bestimmen kann , und auch wie das mit php geht, aber wtf soll ich damit ? xD

geht das überhaupt? kann man die zeichen eines strings zählen? und wenn ja wie ?

ich habs mit 

if (blah.length (<anzahl)) 
{
blah
}
versucht aber naja, das ist wohl falsch


----------



## DocRandom (28. Nov 2007)

```
int zeichen = String.length();
```
lg
DocRandom


----------



## u6g58h8i67roi (28. Nov 2007)

wie kann ich alle zeichen NACH einem bestimmten zeichen oder einer bestimmten zeichenkette aus einem string löschen lassen?


----------



## DocRandom (28. Nov 2007)

..mal ne ganz blöde Frage:
Du brauchst von der WebSite nur den Klartext?
Oder Irre ich jetzt?

lg
DocRandom


----------



## u6g58h8i67roi (28. Nov 2007)

was meinste jetzt mit klartext?

den quelltext oder etwa text den man sehn kann wenn man die seite aufruft?

der text den ich brauche ist in beiden varianten enthalten


----------



## DocRandom (28. Nov 2007)

Dann schau Dir mal das an.
Damit bekommst Du aus einer HTML-site den Klar oder Plaintext zurück.

Und damit hast Du schon die halbe Miete 

es wird Dir danach evtl. leichter fallen die gewünschte Textpassage zu extrahieren!

lg
DocRandom


----------



## u6g58h8i67roi (28. Nov 2007)

ich hab doch den quelltext schon 0o

und ich will ein date auslesen und einen integer, ach und der quelltext ist immer anders und der integer hat immer eine andere länge 0o

hier der teil ausm prog was mir den quelltext ausgibt:


```
BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      
      while((read = br1.readLine()) != null){
          
          
          
         i++;
         System.out.println(i+"\t| "+read);
         
         read = read.replace ("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
         read = read.replace ("\"></HEAD></HTML>", "");
         
         
         
      
    
      
              url = new URL (read);
            
      BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      
      
      
      while((read = br2.readLine()) != null){
        
         b++;
         System.out.println(b+"\t| "+read);
```


----------



## u6g58h8i67roi (28. Nov 2007)

also ich hab mir das mal zu gemüte geführt, ich hab auch versucht das irgendwie in mein programm einzubauen, aber ich bekomm die ganze zeit fehlermeldungen angezeigt, das geht nich =(


----------



## u6g58h8i67roi (28. Nov 2007)

naja ich habs jetzt irgendwie anders geschafft

meine jetzige ausgabe bei einem 10 zeichen langen nick wie meinem ist zb:

init:
deps-jar:
Compiling 1 source file to C:\UserLevel\Berechnung 2\build\classes
compile:
run:
Bitte nick eingeben
DNAofDeath
Datum = 27.02.2004
127.208
Minuten = 127.208
ERSTELLEN ERFOLGREICH (Gesamtzeit: 0 Minuten 1 Sekunde)


----------



## DocRandom (28. Nov 2007)

DNAofDeath hat gesagt.:
			
		

> also ich hab mir das mal zu gemüte geführt, ich hab auch versucht das irgendwie in mein programm einzubauen, aber ich bekomm die ganze zeit fehlermeldungen angezeigt, das geht nich =(


Ich weiß zwar nicht was Du gemacht hast, aber bei mir funzt  es!
Zum Beweis mein kompletter Code:

```
package dnaofdeath;

import java.io.IOException;
import java.io.StringReader;
import java.net.MalformedURLException;

import javax.swing.text.BadLocationException;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;

import org.xml.sax.SAXException;

import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebResponse;

public class HTMLReader {

	private HTMLEditorKit htmlKit;
	private HTMLDocument doc;
	
	public HTMLReader() {
		htmlKit = new HTMLEditorKit();
		doc = (HTMLDocument)htmlKit.createDefaultDocument();
		doc.putProperty("IgnoreCharsetDirective", new Boolean(true));
	}
	
	public String getHTML2Text(String url) {
		String plainText = "";
		WebConversation wc = new WebConversation();
		WebResponse wr = null;
		try {
			wr = wc.getResponse(url);
			htmlKit.read(new StringReader(wr.getText()), doc, 0);
			plainText = doc.getText( 0, doc.getLength());
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SAXException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (BadLocationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
				
		return plainText;
	}
}
```
..und natürlich auch die Main:
	
	
	
	





```
package dnaofdeath;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		HTMLReader html = new HTMLReader();
		String ausgabe = html.getHTML2Text("http://scripts.knuddels.de/ww/knuddels.de/65/dnaofdeath.html");
		System.out.println(ausgabe);
	}

}
```
lg
DocRandom


----------



## u6g58h8i67roi (28. Nov 2007)

also naja, ich blicke durch den code von dir einfach nicht durch, und bloß kopieren will ich auch net, ich will mich ja syntax für syntax in java einarbeiten, und net bloß von codesnippets leben xDDD 

hier ist der code, so wie es im moment ist wird es zwar ein problem wenn die OnMin eine andere länge bekommt, aber ich denke auch dafür werd ich ne lösung finden =) und wenn nicht, dann wieder ab ins forum =)


```
package DNA.java;

import java.awt.*;
import java.text.*;
import java.io.* ;
import java.util.*;
import java.lang.*;
import javax.swing.*;
import java.net.* ;



public class Main {
//    private HTMLEditorKit htmlKit;
//    private HTMLDocument doc;
    
    public Main() {}
    
    
    public static void main(String[] berechnung) throws Exception {
    
    
     BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
      String nick = "";
      String nick1 = "";
      String read ;
      URL url;
      String blah = "";
      int i = 0;
      int b = 0;
      int time = 0;
      System.out.println("Bitte nick eingeben");
      nick = "http://knuddels.de/ww/"+br0.readLine(); 
      if (nick.contains (" "));
      {
          nick = nick.replace (" ","_");
      
      url = new URL(nick);
      }
      
      BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      
      while((read = br1.readLine()) != null){
          
          
          
         i++;
         //System.out.println(i+"\t| "+read);
         
         read = read.replace ("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
         read = read.replace ("\"></HEAD></HTML>", "");
         
              url = new URL (read);
            
      BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
      
      
      
      
      while((read = br2.readLine()) != null){
        
         b++;
         //System.out.println(b+"\t| "+read);
         
         nick = nick.replace("http://knuddels.de/ww/", "");
         int zeichen = nick.length();
        
        
          if (read.contains ("<FONT FACE=\"Arial\">
[B]"))//(b == 45)
               {
                   
                   br2.close(); 
                   read = read.replace("<FONT FACE=\"Arial\">
[B]", "");
                   //read = read.replace ( nick, "");
                   read = read.replace ("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\"> hat sich am [B]", "");
                   
                   if (read.contains ("http://spenden.knuddels.de"))
                   {
                       read = read.replace ("<a href=\"http://spenden.knuddels.de\" target=_blank><img border=0 src=\"../../images/ico_ribbon.gif\"></a> ", "") ;
                       read = read.replace ("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\">hat sich am [B]", "");
                       
                   }
                   
                                                 //ind dem forum hier wird nbsp; anscheinend nicht richtig angezeigt also hab ich ein \ davor gehauen                          |
                   if (read.contains ("&\n\b\s\p\;"))
                   {
                       read = read.replace("&\n\b\s\p\;", " ");
                       //System.out.println(read);
                   }
                   
                   if (zeichen == 10){
                   //System.out.println("da haste den scheiß " + read);
                   String datum = read.substring( 10, 20);
                   System.out.println("Datum = " + datum);
                   read = read.replace("[/B]<FONT COLOR=\"000000\"> um 23:28:22 bei Knuddels registriert und seitdem schon [B]", "");
                   read = read.replace (nick + datum , "");
                   String onMin = read.substring(0, 7);
                   onMin = onMin.replace ("." ,"");
                   int t = 0;
                   t = Integer.parseInt (onMin);
                   t = t;
                   
                   
                   onMin = onMin.replace (".", "");
                   System.out.println("Minuten = " + t);
                   
                   
                   }
                   
                   break;
               }
         
           }
      
      
      }
      br0.close();
      br1.close();
      
         }
    }
```


----------



## u6g58h8i67roi (28. Nov 2007)

so jetzt hab ich wiedermal eine frage und zwar hab ich jetzt soweit den string read manipuliert das die onlineminuten am anfang stehen, da die tausender durch einen punkt (.) getrennt sind möchte ich gerne die zahl in maximal drei teilen auslesen

gibt es sowas wie get nextInt oder so?

//edit ach kagge das ist ja ein string wo ich den integer her haben will >-<
muss mir wohl noch ein paar gedanken machen 

//edit (gedanken gemacht = true)

wie kann ich die ersten 10 zeichen auslesen lassen und jedes einzelne zeichen daruf überprüfen ob es einer zahl entspricht, und wenn es das tut ,es dann in einen string umwandeln und dann wiederum die ausgelesenen zahlen zu EINEM string umwandeln und dann zu einem integer umwandeln  0o

//edit einfacher ausgedrückt:

wie kann ich eine gewisse zeichenkette überprüfen ob sie zahlen enthällt und diese dann extrahieren?

//edit ah ich glaub ich hab die lösung


----------



## u6g58h8i67roi (29. Nov 2007)

okay okay ich häng den code in ner textdatei an =)

http://www.java-forum.org/de/userfiles/user12093/berechnung2.txt <---- daaaaa


----------



## SlaterB (29. Nov 2007)

evtl. eine Code-Zeile zu breit

Fehlermeldungen ohne Code zu posten zeugt schon von einer gewissen Art von Intelligenz


----------



## u6g58h8i67roi (29. Nov 2007)

eine zeile ist da sehr breit, aber daran liegts net, die war ja vorher nicht so breit, hab sie jetzt auch wieder schmäler gemacht

anmerkung: syntaktisch sollte der code in einwandfreiem zustand sein, ich hab da nur paar sachen mehrfach drin, ich denke der code ist einfach zu lang, steht ja auch da, aber wie bekomme ich den jetzt kürzer?


----------



## SlaterB (29. Nov 2007)

nun gut, eine 2000-Zeilen lange Operation ist genausowenig erlaubt,
dafür kann man ja nun wirklich Verständnis haben,

ist auch relativ schnell bei google gefunen,
'The size of a method's bytecode is kept in a UINT16, so 65535 bytes is the maximum. '
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=1&t=012369


viel schlimmer ist natürlich der organisatorische Albtraum bei dieser Code-Vervielfältigung,
unbenutzbares Chaos


----------



## u6g58h8i67roi (29. Nov 2007)

hmmm =( ich bin ein schlechter programmierer, ich weiß, bin ja auch noch ein anfänger, aber wie kann ich das kleiner machen?

ich hab mir auch schon den kopf zerbrochen wie ich diesen bescheuerten block 1. kürzer machen kann und 2. nur einmal verwenden muss, aber ich bin zu keinerm ergebnis gekommen, vllt kann mir ja jemand aus dem forum helfen



```
String ez = "123456789blah"


check = ez.substring(0, 1);
if (check.contains(n0)){onMin = n0;}if (check.contains(n1)){onMin = n1;}
if (check.contains(n2)){onMin = n2;}if (check.contains(n3)){onMin = n3;}
if (check.contains(n4)){onMin = n4;}if (check.contains(n5)){onMin = n5;}
if (check.contains(n6)){onMin = n6;}if (check.contains(n7)){onMin = n7;}
if (check.contains(n8)){onMin = n8;}if (check.contains(n9)){onMin = n9;}
check = ez.substring(1, 2);                        
if (check.contains(n0)){onMin = onMin + n0;}if (check.contains(n1)){onMin = onMin + n1;}
if (check.contains(n2)){onMin = onMin + n2;}if (check.contains(n3)){onMin = onMin + n3;}
if (check.contains(n4)){onMin = onMin + n4;}if (check.contains(n5)){onMin = onMin + n5;}
if (check.contains(n6)){onMin = onMin + n6;}if (check.contains(n7)){onMin = onMin + n7;}
if (check.contains(n8)){onMin = onMin + n8;}if (check.contains(n9)){onMin = onMin + n9;}
check = ez.substring(2, 3);                        
if (check.contains(n0)){onMin = onMin + n0;}if (check.contains(n1)){onMin = onMin + n1;}
if (check.contains(n2)){onMin = onMin + n2;}if (check.contains(n3)){onMin = onMin + n3;}
if (check.contains(n4)){onMin = onMin + n4;}if (check.contains(n5)){onMin = onMin + n5;}
if (check.contains(n6)){onMin = onMin + n6;}if (check.contains(n7)){onMin = onMin + n7;}
if (check.contains(n8)){onMin = onMin + n8;}if (check.contains(n9)){onMin = onMin + n9;} 
check = ez.substring(3, 4);                        
if (check.contains(n0)){onMin = onMin + n0;}if (check.contains(n1)){onMin = onMin + n1;}
if (check.contains(n2)){onMin = onMin + n2;}if (check.contains(n3)){onMin = onMin + n3;}
if (check.contains(n4)){onMin = onMin + n4;}if (check.contains(n5)){onMin = onMin + n5;}
if (check.contains(n6)){onMin = onMin + n6;}if (check.contains(n7)){onMin = onMin + n7;}
if (check.contains(n8)){onMin = onMin + n8;}if (check.contains(n9)){onMin = onMin + n9;}
check = ez.substring(4, 5);
if (check.contains(n0)){onMin = onMin + n0;}if (check.contains(n1)){onMin = onMin + n1;}
if (check.contains(n2)){onMin = onMin + n2;}if (check.contains(n3)){onMin = onMin + n3;}
if (check.contains(n4)){onMin = onMin + n4;}if (check.contains(n5)){onMin = onMin + n5;}
if (check.contains(n6)){onMin = onMin + n6;}if (check.contains(n7)){onMin = onMin + n7;}
if (check.contains(n8)){onMin = onMin + n8;}if (check.contains(n9)){onMin = onMin + n9;}
check = ez.substring(5, 6);                        
if (check.contains(n0)){onMin = onMin + n0;}if (check.contains(n1)){onMin = onMin + n1;}
if (check.contains(n2)){onMin = onMin + n2;}if (check.contains(n3)){onMin = onMin + n3;}
if (check.contains(n4)){onMin = onMin + n4;}if (check.contains(n5)){onMin = onMin + n5;}
if (check.contains(n6)){onMin = onMin + n6;}if (check.contains(n7)){onMin = onMin + n7;}
if (check.contains(n8)){onMin = onMin + n8;}if (check.contains(n9)){onMin = onMin + n9;}
check = ez.substring(6, 7);
if (check.contains(n0)){onMin = onMin + n0;}if (check.contains(n1)){onMin = onMin + n1;}
if (check.contains(n2)){onMin = onMin + n2;}if (check.contains(n3)){onMin = onMin + n3;}
if (check.contains(n4)){onMin = onMin + n4;}if (check.contains(n5)){onMin = onMin + n5;}
if (check.contains(n6)){onMin = onMin + n6;}if (check.contains(n7)){onMin = onMin + n7;}
if (check.contains(n8)){onMin = onMin + n8;}if (check.contains(n9)){onMin = onMin + n9;}
check = ez.substring(7, 8);
if (check.contains(n0)){onMin = onMin + n0;}if (check.contains(n1)){onMin = onMin + n1;}
if (check.contains(n2)){onMin = onMin + n2;}if (check.contains(n3)){onMin = onMin + n3;}
if (check.contains(n4)){onMin = onMin + n4;}if (check.contains(n5)){onMin = onMin + n5;}
if (check.contains(n6)){onMin = onMin + n6;}if (check.contains(n7)){onMin = onMin + n7;}
if (check.contains(n8)){onMin = onMin + n8;}if (check.contains(n9)){onMin = onMin + n9;}
check = ez.substring(8, 9);
if (check.contains(n0)){onMin = onMin + n0;}if (check.contains(n1)){onMin = onMin + n1;}
if (check.contains(n2)){onMin = onMin + n2;}if (check.contains(n3)){onMin = onMin + n3;}
if (check.contains(n4)){onMin = onMin + n4;}if (check.contains(n5)){onMin = onMin + n5;}
if (check.contains(n6)){onMin = onMin + n6;}if (check.contains(n7)){onMin = onMin + n7;}
if (check.contains(n8)){onMin = onMin + n8;}if (check.contains(n9)){onMin = onMin + n9;}   
check = ez.substring(9, 10);
if (check.contains(n0)){onMin = onMin + n0;}if (check.contains(n1)){onMin = onMin + n1;}
if (check.contains(n2)){onMin = onMin + n2;}if (check.contains(n3)){onMin = onMin + n3;}
if (check.contains(n4)){onMin = onMin + n4;}if (check.contains(n5)){onMin = onMin + n5;}
if (check.contains(n6)){onMin = onMin + n6;}if (check.contains(n7)){onMin = onMin + n7;}
if (check.contains(n8)){onMin = onMin + n8;}if (check.contains(n9)){onMin = onMin + n9;}
```


----------



## SlaterB (29. Nov 2007)

grob:

```
for (int i bis 9) {
   check = ez.substring(i, i+1); 

   for (int j bis 9) {
      if  (check.contains(n[j])){ // edit: Korrektur j statt i
          onMin = onMin + n[j];
      }
   }
}
```


----------



## u6g58h8i67roi (29. Nov 2007)

ich hab mal versucht den code zu verstehn, und ,naja ich bekomme jetzt zwar keine fehler mehr beim code angezeigt, aber dafür einen laufzeitfehler,

hier der code:



```
package forschleifen;

public class Main {
    
    public static void main(String[] args) {
        String onMin = "";
        String ez = "123456ertz";
        String check = "";
        int i = 10;
        String[] n = {""};
        int anzahl=10;
        
        
                       for ( int zahl=1; zahl <= anzahl; zahl++) {
                           check = ez.substring(i, i+1);

                       for ( int zahl1=1; zahl1 <= anzahl; zahl1++){
                               
                       if  (check.contains(n[i]))
                           
                       {
                       onMin = onMin + n[i];
                       
                       }
                }
          }
        System.out.println(onMin);
        
    }
    
}
```

und hier der fehler:


```
init:
deps-jar:
Compiling 1 source file to C:\UserLevel\for schleifen\build\classes
compile:
run:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 11
        at java.lang.String.substring(String.java:1935)
        at forschleifen.Main.main(Main.java:16)
Java Result: 1
ERSTELLEN ERFOLGREICH (Gesamtzeit: 0 Minuten 0 Sekunden)
```


was mache ich falsch?


----------



## SlaterB (29. Nov 2007)

> int i = 10; 
> check = ez.substring(i, i+1); 
bedeutet übersetzt
check = ez.substring(10, 11); 

in deinem obigen Code hast du maximal
check = ez.substring(9, 10); 
zusammen mit einer Fehlermeldung 'Index 11 ist außerhalb des Arrays'
überlasse ich dir nun selber die Interpretation...

----------

was nützt eigentlich eine Schleife zahl=1; zahl <= anzahl; zahl
wenn du die Variable zahl dann gar nicht benutzt, sondern immer nur das konstante i = 10?...


----------



## u6g58h8i67roi (29. Nov 2007)

hmmm jetzt bin ich verzweifelt -.-*

das was du mir gesagt hast, naja das bekomm ich net so hin, ausserdem müsste ich das ja auch 26 mal machen, das die länge des strings "nick" ja zwischen 1 und 24 liegen kann , also muss ich erstmal immer wieder überprüfen wie lang der ist und bei einer bestimmten länge eine bestimmte aktion aufrufen,hier wäre diese aktion:


```
if (zeichen == 10){                        
                        String datum = read.substring( 10, 20);
                        
                        read = read.replace("[/B]<FONT COLOR=\"000000\"> um " , "");
                        read = read.replace(" bei Knuddels registriert und seitdem schon [B]","");
                        
                        read = read.replace(nick + datum ,"");
                        String time1 = read.substring(0, 8);
                        
                        
                        read = read.replace(time1, "");
                        String ez = read.substring(0, 10);
```

und dann kommt halt dieser megablock wo ich zu blöd bin den einzustampfen in ein paar zeilen.


----------



## SlaterB (29. Nov 2007)

ich weiß gar nicht wonach du suchst,


----------



## u6g58h8i67roi (29. Nov 2007)

hmmm wonach ich suche? ich will aus String check die zahlen heraussuchen,und dann enstprechend mit dem was ich erhalte weiterarbeiten , bzw im moment will ich es einfach nur ausgeben lassen , nachher wird das ganze in einen long umgewandelt und in eine berechnung eingefügt


```
package forschleifen;

import java.util.Arrays;

public class Main {
    
    public static void main(String[] args) {
        
        
        String onMin = "";
        String ez = "123456ertz";
        String check = "123456ertz";
        int i = 0;
        String[] n = {"1","2","3","4","5","6","7","8","9","0"};
        int anzahl=4;
       
       
                       for ( int zahl1=1; zahl1 <= anzahl; zahl1++) {
                           check = ez.substring(i, i+1);
                            
                       for ( int zahl2=1; zahl2<= anzahl; zahl2++){
                               
                       if  (check.contains(n[i]))
                           
                       {
                       onMin = onMin + n[i];
                       
                       }
                }
          }
        
        System.out.println(onMin);
        System.out.println(Arrays.toString (n));
        System.out.println(i);
       
    }
   
}
```


hier kommt irgendwie immer nur 1 raus, egal was ich mache, naja oder er hängt sich auf.


----------



## SlaterB (29. Nov 2007)

was da falsch läuft mit dem i, habe ich ja schon deutlich geschrieben,
oder schreibe, was du daran nicht verstanden hast

(oder ist dir grundsätzlich das Konzept von Schleifen nicht bekannt?, dann gehts halt nicht)

-------
mit Arrays.binarySearch könntest du wohl genausogut testen, ob eine Ziffer in dem Array drin ist, ja,
kenne ich persönlich nicht, aber wird schon gehen, was sollte so eine Operation sonst machen? 

aber entweder wieder in 10 Einzelaufrufen (immerhin deutlich besser als die 100 Aufrufe bisher)
oder mit einer Schleife


----------



## u6g58h8i67roi (29. Nov 2007)

also, und es gibt ÜBERHAUPT keine möglichkeit einen wert der in einer schleife ist, AUSSERHALB der schleife zu verwenden?


----------



## ms (29. Nov 2007)

Wenn du die Variable für diesen Wert IN der Schleife deklarierst, dann nicht.
Wenn du sie ausserhalb deklarierst dann schon.

ms


----------



## SlaterB (29. Nov 2007)

definiere 'einen wert der in einer schleife ist' näher..

in

```
public class Test
{

    public static void main(String[] args)
        throws Exception
    {
        String test = null;
        for (int i = 0; i < 3; i++)
        {
            test = "Test " + i;
        }
        System.out.println(test);
    }

}
```
wird ein String aus der Schleife nach außen gerettet, geht also schon?


----------



## u6g58h8i67roi (29. Nov 2007)

OMG ja ich habs geschafft 100000000 dank, ich war wohl zu hohl in der brine um das mit dem i und dem j zu bemerken 

aber nach deinem edit funzt alles so wie es soll


----------

