AGMedlem sedan mars 20001 266 inlägg Borde finnas nåt snyggare sätt at skriva ut all denna kod, som det ser ut nu ser det förjävligt ut, nästan:
String input = (String) result.elementAt(1);
Pattern p = Pattern.compile("<(.|\n)+?>");
Matcher m = p.matcher(input);
input = m.replaceAll(" ");
Pattern p3 = Pattern.compile("<(.|\n)+");
Matcher m3 = p3.matcher(input);
input = m3.replaceAll("");
Pattern p4 = Pattern.compile("(.|\n)>");
Matcher m4 = p4.matcher(input);
input = m4.replaceAll("");
Pattern p5 = Pattern.compile("\\+[0-9]{1,3}");
Matcher m5 = p5.matcher(input);
input = m5.replaceAll("");
Pattern p2 = Pattern.compile(" ");
Matcher m2 = p2.matcher(input);
input = m2.replaceAll("\n");
Pattern p7 = Pattern.compile(" closing time event type 1 X 2 ");
Matcher m7 = p7.matcher(input);
input = m7.replaceAll("\n");
Skriva om det på nåt sätt?
Andreas
Du kan ju slå ihop de regexpar som skall ge samma utresultat för att få lite mindre kod, sen behöver du inte definera upp nya objekt för varje matchning, du kan använda ursprungsobjekten:
String input = (String) result.elementAt(1);
Pattern p = Pattern.compile("<(.|\n)+?>");
Matcher m = p.matcher(input);
input = m.replaceAll(" ");
p = Pattern.compile("(<(.|\n)+)|((.|\n)>)|(\\+[0-9]{1,3})");
m = p.matcher(input);
input = m.replaceAll("");
p = Pattern.compile("( )|( closing time event type 1 X 2 )");
m = p.matcher(input);
input = m.replaceAll("\n");
psMedlem sedan juni 2000841 inlägg Har jag många rader som är någorlunda lika så tycker jag det är snyggare att lägga ut det i en egen metod och sen skicka in parametrar till den, typ så här:
String input = (String) result.elementAt(1);
input = foo(input, "<(.|\n)+?>", " ");
input = foo(input, "(<(.|\n)+)|((.|\n)> )|(\\+[0-9]{1,3})", "");
input = foo(input, "( )|( closing time event type 1 X 2 )", "\n");
private String foo(String pInput, String pPattern, String pReplace)
{
/** kan lägga följande 3 rader på en rad, men sånt blir ofta lite för rörigt */
Pattern p = Pattern.compile(pPattern);
Matcher m = p.matcher(pInput);
return m.replaceAll(pReplace);
}
AGMedlem sedan mars 20001 266 inlägg Smiter in och lägger ett inlägg direkt efter Kalle Anka.
Testade Sgtpeppers exempel under gårdagen, och märkte då att resultatet ej blir samma.
Pattern p2 = Pattern.compile("( ) | (<(.|\n)+?>) | (<(.|\n)+ ) | ((.|\n)>)");
Matcher m2 = p2.matcher(input);
input = m2.replaceAll("");
' detta är ursprungliga
Pattern p10 = Pattern.compile(" ");
Matcher m10 = p10.matcher(input);
input = m10.replaceAll("");
Pattern p2 = Pattern.compile("<(.|\n)+?>");
Matcher m2 = p2.matcher(input);
input = m2.replaceAll("");
Pattern p3 = Pattern.compile("<(.|\n)+");
Matcher m3 = p3.matcher(input);
input = m3.replaceAll("");
Pattern p4 = Pattern.compile("(.|\n)>");
Matcher m4 = p4.matcher(input);
input = m4.replaceAll("");
Vad beror det på?
Andreas