我有一个很长的字符串具有特定领域的布局:使用具有字段映射的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