[Schmitzm-commits] r2191 - in trunk/schmitzm-adresses/src: main/java/de/schmitzm/adresses test/java/de/schmitzm/adresses
scm-commit at wald.intevation.org
scm-commit at wald.intevation.org
Tue Jan 22 21:16:39 CET 2013
Author: alfonx
Date: 2013-01-22 21:16:39 +0100 (Tue, 22 Jan 2013)
New Revision: 2191
Modified:
trunk/schmitzm-adresses/src/main/java/de/schmitzm/adresses/AddrStringUtil.java
trunk/schmitzm-adresses/src/test/java/de/schmitzm/adresses/AddrStringUtilTest.java
Log:
Modified: trunk/schmitzm-adresses/src/main/java/de/schmitzm/adresses/AddrStringUtil.java
===================================================================
--- trunk/schmitzm-adresses/src/main/java/de/schmitzm/adresses/AddrStringUtil.java 2013-01-19 15:36:58 UTC (rev 2190)
+++ trunk/schmitzm-adresses/src/main/java/de/schmitzm/adresses/AddrStringUtil.java 2013-01-22 20:16:39 UTC (rev 2191)
@@ -61,7 +61,7 @@
if (hn == null)
return null;
- Matcher matcher = RegexCache.getInstance().getMatcher("^(\\d+)\\D+\\1", hn);
+ final Matcher matcher = RegexCache.getInstance().getMatcher("^(\\d+)\\D+\\1", hn);
if (matcher.find())
hn = matcher.group(1);
@@ -80,19 +80,20 @@
* Verionfacht die Schreibweise einer Hausnummer, z.B. "3-4" -> "4", so dass nur noch eine Integer-Zahl (die
* niedrigste angegebene) da steht.
*/
- public static final Integer vereinfacheHn(String hn) {
+ public static final Integer vereinfacheHn(final String hn) {
if (hn == null)
return null;
- Matcher m = RegexCache.getInstance().getMatcher("(\\d+)", hn);
+ final Matcher m = RegexCache.getInstance().getMatcher("(\\d+)", hn);
while (m.find()) {
try {
- Integer h = Integer.valueOf(m.group(1));
+ final Integer h = Integer.valueOf(m.group(1));
return h;
- } catch (Exception e) {
- // #2438 Verarbeitungsfehler in ObjektAdresseDeducer / AddrStringUtil.vereinfacheHn(AddrStringUtil.java:91)
+ } catch (final Exception e) {
+ // #2438 Verarbeitungsfehler in ObjektAdresseDeducer /
+ // AddrStringUtil.vereinfacheHn(AddrStringUtil.java:91)
return null;
}
}
@@ -237,7 +238,7 @@
// + origStrasse + " " + origHn + " " + origZusatz);
// return new String[] { null, splitHn[0], splitHn[1] };
- Pattern p = regexCache
+ final Pattern p = regexCache
.getPattern("([^\\d]*)\\s([\\d]+[^\\s]*\\s*-\\s*[^\\s]*|[\\d]+[^\\s]*|[\\d]+\\s+\\d+)$");
m = p.matcher(zusammen);
if (m.find()) {
@@ -305,36 +306,31 @@
return new String[] { strasse, StringUtils.trimToNull(hn), StringUtils.trimToNull(zusatz) };
}
- private static String removeSpaces(String zusammen) {
- return RegexCache.getInstance().replaceAll(zusammen, "\\s*(bis|-)\\s*", " $1 ");
- }
-
/**
* @param zusammen
* @return
*/
- public static String removeTrailingHyphens(String zusammen) {
+ public static String removeTrailingHyphens(final String zusammen) {
return RegexCache.getInstance().replaceAll(zusammen, "(.*)\\s?[-]$", "$1");
}
- /**
- * @param zusammen
- * @return
- */
- public static String removeKommataAfterStreetname(String zusammen) {
- return RegexCache.getInstance().replaceAll(zusammen, "([A-Za-z][A-Za-z]+)\\s?[,]\\s?(\\d+)", "$1 $2");
+ private static final String _RemoveKommataAfterStreetname = "^(\\D\\D+)\\b\\s?[,]\\s?(\\d+)";
+
+ public static String removeKommataAfterStreetname(final String zusammen) {
+ return RegexCache.getInstance().replaceAll(zusammen, _RemoveKommataAfterStreetname, "$1 $2");
}
- private static String removeSpacesBetweenHiphenAndDotAndLetters(String zusammen) {
- zusammen = RegexCache.getInstance().replaceAll(zusammen, "([A-Za-z]+)\\s+([.-]*)\\s?([.-])+", "$1$2$3");
+ private static final String _RemoveSpacesBetweenHiphenAndDotAndLetters = "([A-Za-z]+)\\s+([.-]*)\\s?([.-])+";
+
+ public static String removeSpacesBetweenHiphenAndDotAndLetters(String zusammen) {
+ zusammen = RegexCache.getInstance().replaceAll(zusammen, _RemoveSpacesBetweenHiphenAndDotAndLetters, "$1$2$3");
return zusammen;
}
- /**
- * Bearbeitung eines Spezialfalls, der nicht funktioniert...
- */
- public static String removeLeadingSpacesInfrontOfNumbers(String zusammen) {
- return RegexCache.getInstance().replaceAll(zusammen, "([,/\\\\])\\s+(\\d+)", "$1$2");
+ private static final String _RemoveLeadingSpacesInfrontOfNumbers = "([,/\\\\])\\s+(\\d+)";
+
+ public static String removeLeadingSpacesInfrontOfNumbers(final String zusammen) {
+ return RegexCache.getInstance().replaceAll(zusammen, _RemoveLeadingSpacesInfrontOfNumbers, "$1$2");
}
/**
@@ -360,12 +356,12 @@
final TreeSet<String> resultFinal = new TreeSet<String>(new Comparator<String>() {
@Override
- public int compare(String o1, String o2) {
+ public int compare(final String o1, final String o2) {
try {
- Integer i1 = Integer.parseInt(o1);
- Integer i2 = Integer.parseInt(o2);
+ final Integer i1 = Integer.parseInt(o1);
+ final Integer i2 = Integer.parseInt(o2);
return i1.compareTo(i2);
- } catch (Exception e) {
+ } catch (final Exception e) {
return o1.compareTo(o2);
}
}
@@ -392,10 +388,10 @@
} finally {
// Result nochmal testen auf Zahlen die zu groß sind!
- for (String hn : result) {
- Matcher m = regexCache.getMatcher("(\\d+)", hn);
+ for (final String hn : result) {
+ final Matcher m = regexCache.getMatcher("(\\d+)", hn);
m.find();
- Integer hnn = Integer.parseInt(m.group(1));
+ final Integer hnn = Integer.parseInt(m.group(1));
if (hnn > 0 && hnn < 5000) {
resultFinal.add(hn);
}
@@ -491,7 +487,7 @@
/**
* Manche wenige Zeichen sind als HN-Zusatz nicht gültig und werden gelöscht.
*/
- private static String cleanHnZusatz(String hnZusatz) {
+ private static String cleanHnZusatz(final String hnZusatz) {
return regexCache.replaceAll(hnZusatz, "(?:-)", "");
}
@@ -525,7 +521,7 @@
strasse = strasse.toLowerCase();
// http://de.wikipedia.org/wiki/Mannheimer_Planken
- RegexCache rC = RegexCache.getInstance();
+ final RegexCache rC = RegexCache.getInstance();
strasse = rC.replaceAll(strasse, "^planken\\b", "");
strasse = rC.replaceAll(strasse, "\\(.*?\\)", "");
@@ -654,7 +650,7 @@
return txt;
}
- static public String saeubereStrassenname(String orginal) {
+ static public String saeubereStrassenname(final String orginal) {
String strasse = LangUtil.removeTags(orginal).toLowerCase();
strasse = RegexCache.getInstance().replaceAll(strasse, "(\\s+/[^\\d]++)$", "");
@@ -693,11 +689,11 @@
// Wo ist die erste Zahl?
int firstNumIdx = -1;
- Matcher firstNumM = RegexCache.getInstance().getMatcher("\\b\\d", strasse);
+ final Matcher firstNumM = RegexCache.getInstance().getMatcher("\\b\\d", strasse);
if (firstNumM.find()) {
firstNumIdx = firstNumM.start();
boolean moreFound = true;
- while (moreFound && (firstNumM.start() <= 2 || regexCache.matches("(?i:18. okt|4. Juli)", strasse))) {
+ while (moreFound && (firstNumM.start() <= 2 || regexCache.matches("(?i:18\\..?okt|4. Juli)", strasse))) {
moreFound = firstNumM.find();
if (moreFound)
firstNumIdx = firstNumM.start();
Modified: trunk/schmitzm-adresses/src/test/java/de/schmitzm/adresses/AddrStringUtilTest.java
===================================================================
--- trunk/schmitzm-adresses/src/test/java/de/schmitzm/adresses/AddrStringUtilTest.java 2013-01-19 15:36:58 UTC (rev 2190)
+++ trunk/schmitzm-adresses/src/test/java/de/schmitzm/adresses/AddrStringUtilTest.java 2013-01-22 20:16:39 UTC (rev 2191)
@@ -118,7 +118,10 @@
// checkSplit("Kocherstrasse", "Kocherstrasse 15 1", "15", null, "1", null);
// checkSplit("Kosselstr.2 u 4", "Kosselstr.","2 u 4", null);
+ checkSplit(" Seminarstraße, 8", "Seminarstraße","8", null);
+ checkSplit(" Seminarstraße 8", "Seminarstraße", "8", null);
+
checkSplit("Burgstr.", "Burgstr. 153A-154 ", "153A-154", null,
null, null);
More information about the Schmitzm-commits
mailing list