我有一個很長的字符串具有特定領域的佈局:使用具有字段映射的Java字符串的最佳方式是什麼?
Char 1-6 = the type of message
Char 7 = system number
Char 8-9 = unused
Char 10 = shift number
and so on
我明白,我可以只用字符串的方法與此有關的工作,但我希望有一些好一點,讓我將領域與職位以更有意義的方式聯繫起來。
這是否存在?謝謝你的幫助。
我有一個很長的字符串具有特定領域的佈局:使用具有字段映射的Java字符串的最佳方式是什麼?
Char 1-6 = the type of message
Char 7 = system number
Char 8-9 = unused
Char 10 = shift number
and so on
我明白,我可以只用字符串的方法與此有關的工作,但我希望有一些好一點,讓我將領域與職位以更有意義的方式聯繫起來。
這是否存在?謝謝你的幫助。
有一個自定義類,每個變量都定義了它們代表的信息類型。在該類的構造函數中,傳遞此String並通過解析String來初始化不同字段的值。然後,您可以無縫訪問字符串不同部分所代表的信息。
您還可以保存原始的字符串在這個新的類的對象,如果關於原始字符串所需的信息。
我不完全相信你想做的事,但這應該工作:
String typeOfMessage = str.substring(0,5);
char systemNumber = str.charAt(6);
...等等。
使用jsefa
@FlrDataType
...用於固定長度的記錄...
這樣你可以創建一個類,方便地定義位置
@FlrDataType
public class MyMessage {
@FlrField(pos = 1, length = 5)
String messageType;
@FlrField(pos = 6, length = 1)
String systemNumber;
//etc
}
不知道這個 - 謝謝! – Mark 2014-10-07 14:40:09
那麼你可以創建一個所有屬性一類的原始字符串包含,當你創建一個類的對象傳遞給它的源字符串,分析它,並每個值保存到相應的類字段。您將始終需要使用String方法來執行此操作。 – A4L 2014-10-07 14:20:31
我會採取一種方法,以便可用性和可讀性更好。 – StackFlowed 2014-10-07 14:20:45
同意。將字符串傳遞給處理所有這些的類可能是允許您傳遞所有內容的最新方式,並且所有字符串解析都位於後臺。 – Compass 2014-10-07 14:33:24