好的我正在關注我一週前發佈的另一個問題。 Unable to parse^character無法顯示標籤
我目前的情況是,現在我能夠解析所需的正則表達式並創建後續元素。我爲每種元素類型創建了標籤。
對於例如我的輸入字符串爲A | 1 | 2 | 3^4 |乙|| 1 | 2 | 3^4^5
所以我在此字符串標籤是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,所以B1應該是空白的原因。 我的電流輸出來是
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
創建一個單獨的問題並鏈接到它是沒有問題的。只是不*要求*我們讀兩個。 –