@author jllarraz@github Parses the MRZ name in form of SURNAME<<FIRSTNAME< @Param range the range @return array of [surname, first_name], never null, always with a length of 2.
(MrzRange range)
| 65 | * @return array of [surname, first_name], never null, always with a length of 2. |
| 66 | */ |
| 67 | public String[] parseName(MrzRange range) { |
| 68 | checkValidCharacters(range); |
| 69 | String str = rawValue(range); |
| 70 | while (str.endsWith("<")) { |
| 71 | str = str.substring(0, str.length() - 1); |
| 72 | } |
| 73 | final String[] names = str.split("<<"); |
| 74 | String surname = ""; |
| 75 | String givenNames = ""; |
| 76 | surname = parseString(new MrzRange(range.column, range.column + names[0].length(), range.row)); |
| 77 | if(names.length==1){ |
| 78 | givenNames = parseString(new MrzRange(range.column, range.column + names[0].length(), range.row)); |
| 79 | surname = ""; |
| 80 | } |
| 81 | else if(names.length>1){ |
| 82 | surname = parseString(new MrzRange(range.column, range.column + names[0].length(), range.row)); |
| 83 | givenNames = parseString(new MrzRange(range.column + names[0].length() + 2, range.column + str.length(), range.row)); |
| 84 | } |
| 85 | return new String[]{surname, givenNames}; |
| 86 | } |
| 87 | |
| 88 | /** |
| 89 | * Returns a raw MRZ value from given range. If multiple ranges are specified, the value is concatenated. |
no test coverage detected