public Code(String s) { int len = s.length(); if (len < 9 || s.charAt(0) != '(' || s.charAt(len-2) != '"' || s.charAt(len-1) != ')') throw new IllegalArgumentException(s); int endVal = s.indexOf(','); int endScheme = s.indexOf(',', endVal + 1); int startMeaning = s.indexOf('"', endScheme + 1) + 1; this.codeValue = trimsubstring(s, 1, endVal); this.codingSchemeDesignator = trimsubstring(s, endVal+1, endScheme); this.codeMeaning = trimsubstring(s, startMeaning, len-2); if (codingSchemeDesignator.endsWith("]")) { int endVersion = s.lastIndexOf(']', endScheme - 1); endScheme = s.lastIndexOf('[', endVersion - 1); this.codingSchemeDesignator = trimsubstring(s, endVal+1, endScheme); this.codingSchemeVersion = nullifyDCM01(trimsubstring(s, endScheme+1, endVersion)); } }