StringTemplate 生成 Cobol 布局
StringTemplate to generate Cobol layout
我的任务是编写一些 Java 以从 DB2 table 读取数据并以固定格式写入文件,该格式可以输入到 Cobol 程序。
Cobol 布局看起来像这样
01 PERSON
10 FIRST-NAME PIC X(10) (i.e 10 bytes fixed width)
10 LAST-NAME PIC X(20) (i.e 20 bytes fixed width)
10 MIDDLE-INITIAL PIC X(1)
在 Java 中,我可以使用字符串形式的字段。使用文档我想出了这样的东西
class Person {
private String firstName;
private String lastName;
private String middleInitial;
Person(String inFirstName, String inLastName, String inMiddleInitial){
this.firstName = inFirstName;
this.lastName = inLastName;
this.middleInitial = inMiddleInitial;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getMiddleInitial() {
return middleInitial;
}
}
然后在 main 中,我有这些代码行
st = new ST("$p.firstName$ $p.lastName$ $p.middleInitial$", '$', '$');
st.add("p", new Person("Ethelred", "TheUnready", "X"));
System.out.println(st.render());
执行产生这个结果
Ethelred TheUnready X
我应该怎么做才能确保输出看起来像这样
Ethelred TheUnready X
虽然像 John Q Smith 这样的名字会这样
John Smith Q
谢谢!
我的任务是编写一些 Java 以从 DB2 table 读取数据并以固定格式写入文件,该格式可以输入到 Cobol 程序。 Cobol 布局看起来像这样
01 PERSON
10 FIRST-NAME PIC X(10) (i.e 10 bytes fixed width)
10 LAST-NAME PIC X(20) (i.e 20 bytes fixed width)
10 MIDDLE-INITIAL PIC X(1)
在 Java 中,我可以使用字符串形式的字段。使用文档我想出了这样的东西
class Person {
private String firstName;
private String lastName;
private String middleInitial;
Person(String inFirstName, String inLastName, String inMiddleInitial){
this.firstName = inFirstName;
this.lastName = inLastName;
this.middleInitial = inMiddleInitial;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getMiddleInitial() {
return middleInitial;
}
}
然后在 main 中,我有这些代码行
st = new ST("$p.firstName$ $p.lastName$ $p.middleInitial$", '$', '$');
st.add("p", new Person("Ethelred", "TheUnready", "X"));
System.out.println(st.render());
执行产生这个结果
Ethelred TheUnready X
我应该怎么做才能确保输出看起来像这样
Ethelred TheUnready X
虽然像 John Q Smith 这样的名字会这样
John Smith Q
谢谢!