@@ -64,13 +64,14 @@ public Mapcode(
6464 "the regular expression for the mapcode syntax is: " + REGEX_MAPCODE_FORMAT );
6565 }
6666
67- this .mapcodePrecision2 = mapcode ;
68- if (mapcode .contains ("-" )) {
69- this .mapcodePrecision0 = mapcode .substring (0 , mapcode .length () - 3 );
70- this .mapcodePrecision1 = mapcode .substring (0 , mapcode .length () - 1 );
67+ final String mapcodeUppercase = mapcode .toUpperCase ();
68+ this .mapcodePrecision2 = mapcodeUppercase ;
69+ if (mapcodeUppercase .contains ("-" )) {
70+ this .mapcodePrecision0 = mapcodeUppercase .substring (0 , mapcodeUppercase .length () - 3 );
71+ this .mapcodePrecision1 = mapcodeUppercase .substring (0 , mapcodeUppercase .length () - 1 );
7172 } else {
72- this .mapcodePrecision0 = mapcode ;
73- this .mapcodePrecision1 = mapcode ;
73+ this .mapcodePrecision0 = mapcodeUppercase ;
74+ this .mapcodePrecision1 = mapcodeUppercase ;
7475 }
7576 this .territory = territory ;
7677 }
@@ -223,7 +224,7 @@ public enum MapcodeFormatType {
223224 public static MapcodeFormatType getMapcodeFormatType (@ Nonnull final String mapcode ) {
224225
225226 // First, decode to ASCII.
226- final String decodedMapcode = convertToAscii (mapcode );
227+ final String decodedMapcode = convertToAscii (mapcode . toUpperCase () );
227228
228229 // Syntax needs to be OK.
229230 if (!PATTERN_MAPCODE_FORMAT .matcher (decodedMapcode ).matches ()) {
@@ -251,7 +252,7 @@ public static MapcodeFormatType getMapcodeFormatType(@Nonnull final String mapco
251252 * mapcode representing a location on Earth.
252253 */
253254 public static boolean isValidMapcodeFormat (@ Nonnull final String mapcode ) {
254- return getMapcodeFormatType (mapcode ) != MapcodeFormatType .MAPCODE_TYPE_INVALID ;
255+ return getMapcodeFormatType (mapcode . toUpperCase () ) != MapcodeFormatType .MAPCODE_TYPE_INVALID ;
255256 }
256257
257258 /**
@@ -262,7 +263,7 @@ public static boolean isValidMapcodeFormat(@Nonnull final String mapcode) {
262263 */
263264 @ Nonnull
264265 public static String convertToAscii (@ Nonnull final String mapcode ) {
265- return Decoder .decodeUTF16 (mapcode );
266+ return Decoder .decodeUTF16 (mapcode . toUpperCase () );
266267 }
267268
268269 /**
0 commit comments