Ga naar inhoud

[Java] String doorzoek- en vervang functie


anoniem

Aanbevolen berichten

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.
Link naar reactie
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]
Link naar reactie
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!
Link naar reactie
[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?
Link naar reactie
[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.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...