【发布时间】:2015-06-12 09:34:16
【问题描述】:
输入:
bank_details
payee
online_system_id
transaction_id
pass_num
prev_tran_approved
bank_details
payee
online_system_id
transaction_id
prev_tran_approved
以下代码的实际输出。
bank_details
payee
online_system_id
transaction_id
pass_num
prev_tran_approved
online_system_id
proc_online_system_id
tran_reversed
prev_tran_approved
bank_details
payee
online_system_id
transaction_id
prev_tran_approved
online_system_id
proc_online_system_id
tran_reversed
prev_tran_approved
预期输出:
bank_details
payee
online_system_id
transaction_id
pass_num
prev_tran_approved
proc_online_system_id
tran_reversed
bank_details
payee
online_system_id
transaction_id
prev_tran_approved
proc_online_system_id
tran_reversed
下面给出的代码供参考。 即使文件中不存在字符串,我正在检查文件中现有字符串的 if 条件始终返回 true。请仔细阅读代码并建议我进行更改。
好吧,逻辑是我们必须读取一个文件,其中包含不同的行,其中每条记录用空行分隔。取决于我在 if 块中提到的条件,即文件中是否已经存在字符串 online_system_id我们不会附加它,如果它不存在,那么我们会将它附加到每个记录块的末尾。将对 4 个值执行此检查,即 online_system_id、proc_online_system_id、tran_reversed、prev_tran_approved
String line;
File output = new File(outputDir, "post_tran.tbl");
PrintStream out = new PrintStream(new FileOutputStream(output));
BufferedReader br = new BufferedReader(new FileReader(inputFile));
while((line=br.readLine())!=null){
if(line.trim().isEmpty()) {
if(!(line.contains("online_system_id"))){
out.println("online_system_id");
}
if(!(line.contains("proc_online_system_id"))){
out.println("proc_online_system_id");
}
if(!(line.contains("tran_reversed"))){
out.println("tran_reversed");
}
if(!(line.contains("prev_tran_approved"))){
out.println("prev_tran_approved");
}
}
out2.println(line); //always print the current line
}
try{
out2.close();
br.close();
} catch (Exception ex) {
System.err.println(ex);
}
【问题讨论】:
-
请贴出实际输出