String in URL umwandeln

Status
Nicht offen für weitere Antworten.

u6g58h8i67roi

Bekanntes Mitglied
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
 

u6g58h8i67roi

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

SlaterB

Gast
deswegen funktionierts ja auch..

Code:
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

Bekanntes Mitglied
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?


Code:
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();
      
    }
 
S

SlaterB

Gast
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

Bekanntes Mitglied
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

Top Contributor
Weil Du solange liest, bis der Stream zu ende ist, ergo
Code:
read == null

lg
DocRandoml
 

u6g58h8i67roi

Bekanntes Mitglied
leute? ihr seid klasse =)

habs jetzt so gelöst:

Code:
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

Bekanntes Mitglied
ich bekomme immernoch eine exception

Code:
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
 
S

SlaterB

Gast
und an welcher Stelle bitte?

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


Code:
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

Bekanntes Mitglied
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 :

Code:
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();
     
    }}
 
S

SlaterB

Gast
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

Bekanntes Mitglied
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 =)
 
S

SlaterB

Gast
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

Bekanntes Mitglied
hmm ich kann die schleife nicht beenden an dem punkt

dann wird der ganze rest ja ins nirvana verschwinden

und der ist sehr wichtig
 
S

SlaterB

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

u6g58h8i67roi

Bekanntes Mitglied
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
 
S

SlaterB

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

du drehst dich im Kreis..
 

u6g58h8i67roi

Bekanntes Mitglied
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?
 
S

SlaterB

Gast
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

Bekanntes Mitglied
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?
 
S

SlaterB

Gast
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

Bekanntes Mitglied
<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.

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

DNAofDeath
hat...
&
gt.gif
<FONT COLOR="#FF0000">11.760<FONT
COLOR="#000000" SIZE=2>
<FONT COLOR="000000"> Knutschflecken...
& & & & & & & &
gt.gif
<FONT COLOR="#FF0000">5<FONT
COLOR="#000000" SIZE=2>
<FONT COLOR="000000"> erhalten
& & & & & & & &
gt.gif
<FONT COLOR="#FF0000">12<FONT COLOR="#000000"
SIZE=2>
<FONT COLOR="000000">
rose.gif
erhalten
& & & & & & & &
gt.gif
<FONT
COLOR="#FF0000">32<FONT COLOR="#000000" SIZE=2>
<FONT COLOR="000000"> Mentor Punkte
& & & & & & & &
gt.gif
<FONT
COLOR="#FF0000">2
<FONT COLOR="#FF0000"><FONT COLOR="#000000" SIZE=2> lol*ipop-Punkte
& & & & & & & &
gt.gif
Mafiarang: <FONT COLOR="#FF0000">Amateur<FONT COLOR="#000000"
SIZE=2>
<FONT COLOR="000000">
& & & & & & & &
gt.gif
und kann noch <FONT COLOR="#FF0000">nicht<FONT COLOR="#000000"
SIZE=2> knuddeln
<FONT COLOR="000000">! &

Er hat sein
fullheart.gif
an Strawberry123 vergeben.
Und die
fullheart.gif
halfheart.gif
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.
male.gif
&
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!
sm_flowerpower_03.gif

<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>
ico_ribbon.gif


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.

py_r.gif
&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
 
S

SlaterB

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

u6g58h8i67roi

Bekanntes Mitglied
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

Bekanntes Mitglied
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
 
S

SlaterB

Gast
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

Bekanntes Mitglied
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?
 
S

SlaterB

Gast
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

Bekanntes Mitglied
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
 

u6g58h8i67roi

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

u6g58h8i67roi

Bekanntes Mitglied
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

Top Contributor
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

Bekanntes Mitglied
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:

Code:
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

Bekanntes Mitglied
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

Bekanntes Mitglied
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

Top Contributor
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:
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:
Code:
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

Bekanntes Mitglied
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 =)

Code:
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

Bekanntes Mitglied
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
 
S

SlaterB

Gast
evtl. eine Code-Zeile zu breit

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

u6g58h8i67roi

Bekanntes Mitglied
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?
 

u6g58h8i67roi

Bekanntes Mitglied
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


Code:
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;}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
S String umwandeln Java Basics - Anfänger-Themen 6
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
L String in Integer umwandeln Java Basics - Anfänger-Themen 3
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
MiMa String in Gross und Kleinbuchstaben umwandeln Java Basics - Anfänger-Themen 10
H JCalendar in String umwandeln Java Basics - Anfänger-Themen 9
L String in Binär umwandeln Java Basics - Anfänger-Themen 4
W String auf char[] umwandeln Java Basics - Anfänger-Themen 3
C Array in String umwandeln Java Basics - Anfänger-Themen 5
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N Collections String in HashMap umwandeln Java Basics - Anfänger-Themen 3
L Java CMD Console in String umwandeln? Java Basics - Anfänger-Themen 2
D String zu int umwandeln Java Basics - Anfänger-Themen 2
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
D String in FileInputStream umwandeln Java Basics - Anfänger-Themen 2
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
S Element von List<E> in String umwandeln Java Basics - Anfänger-Themen 3
AssELAss String in Datum umwandeln Java Basics - Anfänger-Themen 4
J array in String umwandeln Java Basics - Anfänger-Themen 1
J array in String umwandeln Java Basics - Anfänger-Themen 3
1 Binärdarstellung (als String) in Dezimalzahl umwandeln Java Basics - Anfänger-Themen 8
X Datentypen Int oder String in Bits/Bytes umwandeln Java Basics - Anfänger-Themen 10
W Datentypen String in Quellcode umwandeln Java Basics - Anfänger-Themen 25
J int mit führenden Nullen in String umwandeln Java Basics - Anfänger-Themen 5
A String in Double umwandeln mit Tests Java Basics - Anfänger-Themen 3
S ArrayList<Byte> in String umwandeln Java Basics - Anfänger-Themen 5
M String in Datum umwandeln mit SimpleDateFormat Java Basics - Anfänger-Themen 3
A String(Ascii ) in String umwandeln Java Basics - Anfänger-Themen 3
M set<String> in ein StringArray umwandeln? Java Basics - Anfänger-Themen 3
F ArrayList<ArrayList<String>> to String[][] umwandeln? Java Basics - Anfänger-Themen 9
B Unbekannte Zahl aus einem String umwandeln Java Basics - Anfänger-Themen 15
T String spliten und in BigInteger umwandeln Java Basics - Anfänger-Themen 3
G File in String umwandeln. (Variable) Java Basics - Anfänger-Themen 4
S Input/Output String in byte umwandeln? Java Basics - Anfänger-Themen 5
F Probleme beim umwandeln von String in Int Java Basics - Anfänger-Themen 10
D Erste Schritte String Array in char Array umwandeln? Java Basics - Anfänger-Themen 1
A string bitweise in long umwandeln Java Basics - Anfänger-Themen 7
A String in int umwandeln Java Basics - Anfänger-Themen 14
M String Datei in Float-Matrix umwandeln Java Basics - Anfänger-Themen 8
J Ascii Zeichen von einem String umwandeln und ausgeben Java Basics - Anfänger-Themen 11
W Datentypen double in String umwandeln Java Basics - Anfänger-Themen 2
H Exception beim umwandeln von String zu int Java Basics - Anfänger-Themen 4
R String in ein Int Array umwandeln Java Basics - Anfänger-Themen 3
M string in ein xml-object umwandeln Java Basics - Anfänger-Themen 11
T String in ein multidimensionales Array umwandeln Java Basics - Anfänger-Themen 4
M String in Quellcode umwandeln Java Basics - Anfänger-Themen 9
B int in String umwandeln Java Basics - Anfänger-Themen 35
V Zahleneingabe als String in Char umwandeln Java Basics - Anfänger-Themen 4
A Datentypen Typ der Arraylist in String umwandeln Java Basics - Anfänger-Themen 23
K String in Char umwandeln ??? Java Basics - Anfänger-Themen 2
S JSON String in Object umwandeln Java Basics - Anfänger-Themen 3
-horn- Kann man Code als String einladen, umwandeln und ausführen lassen? Java Basics - Anfänger-Themen 8
N Map<String, HashSet<String>> Umwandeln in Map<String, ArrayList<String>> Java Basics - Anfänger-Themen 14
L File in String umwandeln Java Basics - Anfänger-Themen 10
P Datum: String in Date umwandeln Java Basics - Anfänger-Themen 7
W String in boolean umwandeln Java Basics - Anfänger-Themen 44
F int in String umwandeln Java Basics - Anfänger-Themen 9
C Binärzahl vom Typ String in eine Zahl vom Typ Integer umwandeln Java Basics - Anfänger-Themen 4
M String(Binärzahl) in Dezimal umwandeln Java Basics - Anfänger-Themen 4
A String in Integer umwandeln Java Basics - Anfänger-Themen 17
Mike90 Umwandeln von String in String[] ? Java Basics - Anfänger-Themen 23
S String in Char umwandeln Java Basics - Anfänger-Themen 9
S Hex-String in Ascii-String umwandeln! Java Basics - Anfänger-Themen 7
E String Ip in InetAddress umwandeln Java Basics - Anfänger-Themen 4
Spot84 long von getCreationDate in String umwandeln Java Basics - Anfänger-Themen 4
S binärer string in negativen int umwandeln Java Basics - Anfänger-Themen 4
R Hex-String in LongInt umwandeln Java Basics - Anfänger-Themen 2
N string in charArray umwandeln Java Basics - Anfänger-Themen 19
Z String umwandeln Java Basics - Anfänger-Themen 4
G integer in String umwandeln Java Basics - Anfänger-Themen 1
D File mit String in File umwandeln ? Java Basics - Anfänger-Themen 4
W [Solved] String in Datum umwandeln Java Basics - Anfänger-Themen 5
C String in Int umwandeln // Von Int wieder in String zurück Java Basics - Anfänger-Themen 10
M Variablenbezeichner in einen String umwandeln Java Basics - Anfänger-Themen 4
S Datum umwandeln: String in Date umwandeln Java Basics - Anfänger-Themen 4
D SimpleDateFormat in String umwandeln Java Basics - Anfänger-Themen 7
R Probleme beim umwandeln eines String zu einem Int Wert Java Basics - Anfänger-Themen 3
A Datentyp String in char umwandeln Java Basics - Anfänger-Themen 3
M String in int umwandeln und in Array ablegen Java Basics - Anfänger-Themen 6
G String in java.sql.Date umwandeln Java Basics - Anfänger-Themen 4
D String in HTML umwandeln Java Basics - Anfänger-Themen 4
G String in Document Umwandeln Java Basics - Anfänger-Themen 2
G String in Date Format umwandeln Java Basics - Anfänger-Themen 8
G String in InputStream umwandeln? Java Basics - Anfänger-Themen 8
S String in ACSII Zahlen umwandeln Java Basics - Anfänger-Themen 10
S String umwandeln in Comparable Java Basics - Anfänger-Themen 6
G String buchstaben in Zahlen umwandeln Java Basics - Anfänger-Themen 5
M Stream in String umwandeln Java Basics - Anfänger-Themen 5
V String mit Hexadezimalzahlen in Binär umwandeln Java Basics - Anfänger-Themen 2
A String umwandeln Java Basics - Anfänger-Themen 2
J String in int umwandeln Java Basics - Anfänger-Themen 5
G Int-Queue in String-Queue umwandeln Java Basics - Anfänger-Themen 5
P String in Binärcode umwandeln Java Basics - Anfänger-Themen 8
F Integer zu String umwandeln Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben