所以我到目前爲止這樣的代碼:存儲字符串從文本文件和打印到屏幕
import java.util.*;
import java.io.*;
public class EmailMerge {
public static void main(String[] args) throws IOException {
Scanner templateReader = null;
Scanner peopleReader = null;
PrintWriter out = null;
String template = "";
ArrayList people = new ArrayList();
try {
templateReader = new Scanner(new FileInputStream("template.txt"));
peopleReader = new Scanner(new FileInputStream("people.txt"));
while(templateReader.hasNext()) {
//System.out.print(templateReader.next());
template = templateReader.next();
}
System.out.println(template);
}
catch(FileNotFoundException e)
{
System.out.println("File(s) not found...");
System.exit(0);
}
}
}
我有一個名爲template.txt一個文本文件包含此:
Dear <<N>>,
Because you are <<A>> years old and <<G>>, we have a
free gift for you. You have absolutely nothing to buy;
just pay the shipping and handling charge of $9.99. To
claim your gift, call us immediately.
Thank you,
Office of Claims Department
,我有叫people.txt另一個文本文件中包含的人的姓名和年齡,像這樣:
John, 38, Male
Mary, 22, Female
so on and so forth...
我有什麼牛逼o do是通過列表中的所有名稱並使用該模板創建個性化消息。然後我必須將每個文件保存爲一個獨特的文本文件(即John.txt)。我想要做的是將列表中的名稱存儲到一個ArrayList中,我稱之爲人,然後將模板存儲到一個字符串中,我稱之爲模板。
但是,當我嘗試打印出模板時,出現了我的問題。如果有更好的方法打印出來,我不知道是否存儲錯誤,但是當我使用此代碼時,我只是將「部門」打印到屏幕上。我需要將整個事情存儲在字符串模板中,並能夠以正確的格式將其打印到屏幕上,如上所述。 請幫助,感謝一束!
更新: 非常感謝你們的幫助! 還有一個問題。我終於在項目結束時將所有必要的信息存儲到了幾個ArrayLists中,但是當我嘗試打印出模板時,它會起作用,但它大約需要1000次。這裏是我正在使用的循環:
for(int j = 0; j < people.size(); j++){
for(int i = 0; i < names.size(); i++){
System.out.println(template.replace("<<N>>", names.get(i)).replace("<<A>>", ages.get(i)).replace("<<G>>", genders.get(i)));
}
}
我將所有名稱/年齡/性別存儲到適當的ArrayList中。再次感謝!
您的while循環不斷分配/覆蓋新的東西到'template'字符串。你唯一真正打印的是最後一個。 – csmckelvey 2014-09-05 00:51:04