--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AddressUtils.java 2015/02/13 07:36:49 2273 +++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AddressUtils.java 2015/02/27 10:38:50 2399 @@ -12,6 +12,11 @@ public String etage = ""; public String lejlighed = ""; public String resten = ""; + + @Override + public String toString() { + return vej + " / " + husnr + " / " + litra; + } } public static String vaskVejnavn(String indVejnavn) { @@ -23,10 +28,25 @@ out = out.replace("/", ""); out = out.replace("\\", ""); out = out.replace("'", ""); + out = out.replace(";", ""); + out = out.replace(":", ""); + out = out.replace("´", ""); + return out; } + public static String injectIntoBk(String bkrute, String injected) { + String parts[] = bkrute.split("/"); + + if (parts.length != 4) { + System.out.println(">BK " + bkrute); + return bkrute; + } + + return parts[0] + "/" + parts[1] + "/" + parts[2] + "/" + injected + parts[3]; + } + /* * Er en 1-1 port af SplitAdresse() fra funcSplitAdresse.php @@ -52,7 +72,20 @@ delStreng.append( indAdresse.charAt(i) ); i++; } - result.vej = WordUtils.capitalize( delStreng.toString().trim() ); + + + result.vej = delStreng.toString().toLowerCase().trim(); + if ( result.vej.endsWith(".") || result.vej.endsWith(",")) { + result.vej = result.vej.substring(0, result.vej.length() - 1); + result.vej = result.vej.trim(); + } + + //special case - hvis strengen ender med ' nr' skal ' nr' fjernes + if ( result.vej.endsWith(" nr")) { + result.vej = result.vej.substring(0, result.vej.length() - 3); + } + + result.vej = WordUtils.capitalize( result.vej.trim() ); @@ -97,17 +130,26 @@ if (i>=len) //THN tilføjelse return result; - if (Character.isAlphabetic(indAdresse.charAt(i) )) { - if ( (i+1 == len || - (Character.isAlphabetic(indAdresse.charAt(i+1)) == false && indAdresse.charAt(i+1) != '.') - ) - ) { - result.litra = "" + indAdresse.charAt(i); - result.litra = result.litra.toUpperCase(); - i++; + if (Character.isAlphabetic(indAdresse.charAt(i) )) { + char current = Character.toUpperCase( indAdresse.charAt(i) ); + + if (current != 'Æ'&& current != 'Ø' && current != 'Å') { + if ( (i+1 == len || + (Character.isAlphabetic(indAdresse.charAt(i+1)) == false + /*&& indAdresse.charAt(i+1) != '.'*/) + ) + ) { + result.litra = "" + current; + i++; + } } } + // ignorer blanke og komma og punktum + while (i