[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