anoniem Geplaatst: 14 januari 2003 Delen Geplaatst: 14 januari 2003 Kan iemand mij een zetje in de goede richting geven met het volgende dilemma: [size=9:b1d3184e31] int lt = line.length(); int start, stop; start=0;stop=0; [color=red:b1d3184e31]for (int i=0;i<lt;i++) { if((line.charAt(i)=='<')&&(start==0)){ start = i; } if((line.charAt(i)=='>')&&(stop==0)){ stop = i; } }[/color:b1d3184e31] if (start >0 && stop >0){ subline =line.substring(start,stop).toLowerCase(); } [/size:b1d3184e31] OK wat ik dus probeer te bewerkstelligen (en niet in slaag) is om in een string line te controleren op stukjes "<*>" waarbij het niet uitmaakt wat op de plek van * staat. Mijn probleem momenteel is dat er in een regel meerdere stukjes voorkomen (maar er niet op kan checken). (Hoe) kan ik gebruik maken van wildcards? Hoe ondervang ik het vaker voorkomen van stukjes "<*>"?? tips zijn volkomen welkom. Quote Link naar reactie
anoniem Geplaatst: 15 januari 2003 Auteur Delen Geplaatst: 15 januari 2003 heb d'r zelf nog niet naar kunnen kijken maar jdk1.4 heeft toch regex support? ik begrijp uit je vraag niet precies wat er met het gezochte "patroon" dient te gebeuren maar hieronder toch een poging. hoe't e.e.a werkt is volgens mij wel duidelijk genoeg. [code:1:009e5b4aad]public class ParseLine { public static void main(String[] args) { System.out.println(parseLine(args[0])); } public static String parseLine(String line) { int start = line.indexOf('<'); if (start >= 0) { int end = line.indexOf('>', start + 1); if (end >= 0) { String token = line.substring(start + 1, end); String lcontext = line.substring(0, start); String rcontext = line.substring(end + 1); return parseLine(lcontext + '{' + token + '}' + rcontext); } } return line; } }[/code:1:009e5b4aad] Quote Link naar reactie
anoniem Geplaatst: 15 januari 2003 Auteur Delen Geplaatst: 15 januari 2003 Je wilt dus de '<' en '>' eruit hebben en alles wat ertussen staat '<*>'? Oke dan. [code:1:39c208cac9] private void filter(String in) { String uit = ""; int len = in.length(); boolean block = false; for (int i = 0; i < len; i++) { char t = in.charAt(i); if (t == '<') block = true; else if (t == '>') block = false; else if (!block) uit += t; } return uit; } [/code:1:39c208cac9] Ik heb 't niet getest. Maar zoiets dan? Succes! Quote Link naar reactie
anoniem Geplaatst: 15 januari 2003 Auteur Delen Geplaatst: 15 januari 2003 [quote:bdd0af85ca="SabineBos"]Kan iemand mij een zetje in de goede richting geven met het volgende dilemma: [size=9:bdd0af85ca] int lt = line.length(); int start, stop; start=0;stop=0; [color=red:bdd0af85ca]for (int i=0;i<lt;i++) { if((line.charAt(i)=='<')&&(start==0)){ start = i; } if((line.charAt(i)=='>')&&(stop==0)){ stop = i; } }[/color:bdd0af85ca] if (start >0 && stop >0){ subline =line.substring(start,stop).toLowerCase(); } [/size:bdd0af85ca] OK wat ik dus probeer te bewerkstelligen (en niet in slaag) is om in een string line te controleren op stukjes "<*>" waarbij het niet uitmaakt wat op de plek van * staat. Mijn probleem momenteel is dat er in een regel meerdere stukjes voorkomen (maar er niet op kan checken). (Hoe) kan ik gebruik maken van wildcards? Hoe ondervang ik het vaker voorkomen van stukjes "<*>"?? tips zijn volkomen welkom.[/quote:bdd0af85ca] Is het om HTML regels te parsen? Quote Link naar reactie
anoniem Geplaatst: 20 januari 2003 Auteur Delen Geplaatst: 20 januari 2003 [quote:1c570f2771="h4xX0r"] Is het om HTML regels te parsen?[/quote:1c570f2771] Ja. Of tenminste, om alle tags lowercase te maken. Quote Link naar reactie
anoniem Geplaatst: 20 januari 2003 Auteur Delen Geplaatst: 20 januari 2003 [quote:7806489cfe="SabineBos"][quote:7806489cfe="h4xX0r"] Is het om HTML regels te parsen?[/quote:7806489cfe] Ja. Of tenminste, om alle tags lowercase te maken.[/quote:7806489cfe] [img:7806489cfe]http://www.alexander-benecke.de/gif/applaus.gif[/img:7806489cfe] Op weg naar XHTML? Dit is lastiger dan je denkt. Hier een voorbeeld waar je rekening mee zou moeten houden. [code:1:7806489cfe] <script type="text/javascript" language="javascript"> <!-- document.write("foo"); document.write("<\/p>"); // --> </script> [/code:1:7806489cfe] [code:1:7806489cfe]<a href="http://www.url.com/?CAse_SenSitive" target="" ...[/code:1:7806489cfe] En [url=http://www.htmlhelp.org/reference/wilbur/misc/comment.html]HTML commentaar[/url] moet je natuurlijk ook gewoon laten staan. Quote Link naar reactie
anoniem Geplaatst: 21 januari 2003 Auteur Delen Geplaatst: 21 januari 2003 hmmm.... je hebt helemaal gelijk... Ik kijk nog even aan hoe ik het aanpak. In ieder geval bedankt!!! Quote Link naar reactie
anoniem Geplaatst: 23 januari 2003 Auteur Delen Geplaatst: 23 januari 2003 [i:4fc3ed48e0]Ik kijk nog even aan hoe ik het aanpak.[/i:4fc3ed48e0] Sabine, Ben je toevallig bekend met het idee van een eindige toestandsautomaat? Want dat is precies wat je zoekt. Ben. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen