Мне поручено написать некоторую Java для чтения данных из таблицы DB2 и записать в файл в формате с фиксированным форматом, который может быть введен в программу Cobol. Cobol макет выглядит такStringTemplate для создания компоновки 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;
}
}
, а затем в основном, я имел следующие строки кода
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
в то время как имя, как Джон Смит Q хотел бы так
John Smith Q
Спасибо!
Это выглядит довольно просто. Поэтому вы говорите, что нет необходимости гадать с помощью StringTemplate. – ChuckLeviton
Нет необходимости использовать StringTempate –