public String PathCommands(String path, String match, int start, int end){
if(start != 0){ //check if there is whitespace before the found command if (path.substring(start-1,end-1).equals(" ")){ path = path.substring(0, start-1) + path.substring(end-1); } else System.out.println("No space matched"); } else return path;
Den skriver M L L osv men ikke updatere min path streng?
Det jeg prøver og er: 1. finder all Commands som er i [MLVHCSTQAZ]. Find char før commanden og see om det er whitespace. Hvis det er, jeg fjerne den. 2. finder all commands som er i [MLVHCSTQAZ]. Find char efter commanden. Hvis den er whitespace, jeg fjerne den igen.
ovenstående gør jeg ved at kalde min metode PathCommands() som gøre hvad den skal gør og return'er path strengen igen. Den finder første L i strengen og opdatere strengen så den ikke har mellemrum før den første L command'en. Resten af commend'er, sker ikke noget med?!
Det er ihvertfald hvad jeg vil gerne gør med koden jeg har.
However, det jeg prøver og gør er: En streng kan ser sådan ud "M 0 112 L 20 124L 40 L129 L 60 -126.32 V -34.342 H -45 Z"
1.Finder alle mellemrum og see om de har betydning, hvis ikke, jeg fjerne dem. Mellemrum før og efter command'er har ingen betydning. Mellemrum før et negativ tal har ingen betydning. Altså, mellemrum mellem positiv og negativ point'er skal fjernes.
public class RegexReplace { public static void main(String[] args) { String s = "M 0 112 L 20 124 L 40 45 L129 30L 60 -126.32 V -34.342 H -45 Z"; System.out.println(s); System.out.println("M0 112L20 124L40 45L129 30L60-126.32V-34.342H-45Z"); String s2 = s.replaceAll("([ ]?)([MLVHCSTQAZ])([ ]?)","$2"); System.out.println(s2); } }
udskriver
M 0 112 L 20 124 L 40 45 L129 30L 60 -126.32 V -34.342 H -45 Z M0 112L20 124L40 45L129 30L60-126.32V-34.342H-45Z M0 112L20 124L40 45L129 30L60 -126.32V-34.342H-45Z
jeg er ikke helt klar over om forskellen er ønsket eller ikke ønsket
det virker næsten og det er kun en linie i Java :-) men hvordan kan jeg lave den om til M0 112L20 124L40 45L129 30L60 -126.32V-34.342H-45Z fra M0 112L20 124L40 45L129 30L60-126.32V-34.342H-45Z
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.