알겠습니다. 일주일 전에 게시 한 다른 질문에 대한 답변을 드리겠습니다. Unable to parse^character태그를 표시 할 수 없습니다.
내 현재 상황은 필요한 정규식을 구문 분석하고 후속 요소를 만들 수있게되었습니다. 각 요소 유형에 대한 태그를 만들었습니다. 1 | | 2 | 3^4 | B || 1 | 2 | 내 입력 문자열이 있습니다 예를 들어
^4^5
3 그래서이 문자열 내 태그
A와 B이다 내 결과는 (예상)
A1 1
A2 2
A3.1 3
A3.2 4
B1 (BLANK) //not B
B2 1
B3 2
B4.1 3
B4.2 4
B4.3 5
입력은 B || 1 | 2이므로 공백이어야합니다. 내 전류 출력은 기본적으로
element1 A
element2 1
element3.1 2
element3.2 3
element4 4
element5 B
element6
element7.1 2
element7.2 3
element7.3 4
element7.4 5
로오고, 나는 HL7 파서를 구축하려합니다. 혼동을 피하고 기밀 유지를 위해 정확한 태그로 대체하십시오. 코드는 다음과 같습니다.
공용 클래스 파서 {
public static final String ELEMENT_DELIM_REGEX = "\\|"; public static void main(String[] args) { String input = "A|1|2|3^4|"; String[] tokens = input.split(ELEMENT_DELIM_REGEX); Element[] elements = new Element[tokens.length]; for (int i = 0; i < tokens.length; i++) { elements[i] = new Element(i + 1, tokens[i]); } for (Element element : elements) { System.out.println(element); } }
}
및
Element.java
공용 클래스 요소 {
public static final String SUB_ELEMENT_DELIM_REGEX = "\\^"; private int number; private String[] content; public Element(int number, String content) { this.number = number; this.content = content.split(SUB_ELEMENT_DELIM_REGEX); } @Override public String toString() { if (content.length == 1) { return "Element " + number + "\t" + content[0]; } StringBuilder str = new StringBuilder(); for (int i = 0; i < content.length; i++) { str.append("Element " + number + "." + (i+1) + "\t" + content[i] + "\n"); } // Delete the last \n str.replace(str.length() - 1, str.length(), ""); return str.toString(); } }
질문 자체가 포함되어야합니다. 우리가 다른 질문을 읽을 것을 요구하지 마십시오. (이것은 포럼이 아니므로 실로 스레드가 아닙니다.) –
은 코드를 추가했습니다 ... 나는 @jlordo가 아주 언젠가 이것에 대해 토론하고 있었기 때문에 또 다른 질문을 만들지를 물었습니다. – Sid
별도의 질문을 만들고 그것에 링크하는 것이 좋습니다. * 우리 모두를 읽을 필요는 없습니다. –