package dk.daoas.daoadresseservice; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; public class AddressUtils { public static class SplitResult { public String vej = ""; public String husnr = ""; public String litra = ""; public String etage = ""; public String lejlighed = ""; public String resten = ""; @Override public String toString() { return vej + " / " + husnr + " / " + litra; } } public static char fjernAccentTegn(char c) { switch (c) { case 'é': return 'e'; case 'è': return 'e'; case 'û': return 'u'; case 'ü': return 'u'; case 'ö': return 'ø'; case 'ô': return 'o'; case 'ä': return 'æ'; case 'â': return 'a'; case 'ñ': return 'n'; default: return c; } } public static String vaskVejnavn(String indVejnavn) { StringBuilder sb = new StringBuilder(); char chars[] = indVejnavn.toCharArray(); for (char c: chars) { if ( Character.isAlphabetic(c)) { c = Character.toLowerCase(c); c = fjernAccentTegn(c); sb.append( c ); } else if ( Character.isDigit(c)) { sb.append(c); } } return sb.toString(); } public static String injectIntoBk(String bkrute, String injected) { if (bkrute == null) return null; 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 */ public static SplitResult splitAdresse(String indAdresse) { indAdresse = indAdresse.trim(); SplitResult result = new SplitResult(); int i=0; int len = indAdresse.length(); StringBuilder delStreng = new StringBuilder(); // ignorer blanke og komma og punktum while (i" + delStreng + "< " +i); if (delStreng.length() == 1) { result.litra = delStreng.toString().toUpperCase(); if ( !Character.isAlphabetic(result.litra.charAt(0))) { result.litra = ""; //$HusBogstav må KUN være A-Z } delStreng = new StringBuilder(); // ignorer blanke og komma og punktum while (i=len) //THN tilføjelse return result; 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) != '.'*/ && checkCo(indAdresse,i) == false // Fra sortér C/O ) ) ) { result.litra = "" + current; i++; } } } // ignorer blanke og komma og punktum while (i 0 ) { // ignorer blanke og komma og punktum while (i