Java 试图分析EDI文件并合计发票总额
我已经设法提取了我正在寻找的数字,但是(可能是因为我从大学起就没有使用过Java),我无法将这些数字相加以获得EDI文件的“总数”和计数。输出显示我正在收集每个发票总额作为一个双精度,但当我尝试添加它们时,每次while循环运行时都会重置该数字,如果我将其放置在循环之外,它将无法识别我的变量 这是我的密码Java 试图分析EDI文件并合计发票总额,java,parsing,edi,Java,Parsing,Edi,我已经设法提取了我正在寻找的数字,但是(可能是因为我从大学起就没有使用过Java),我无法将这些数字相加以获得EDI文件的“总数”和计数。输出显示我正在收集每个发票总额作为一个双精度,但当我尝试添加它们时,每次while循环运行时都会重置该数字,如果我将其放置在循环之外,它将无法识别我的变量 这是我的密码 try (BufferedReader br = new BufferedReader(new FileReader("\\Edi810o311214.dat"))) { String
try (BufferedReader br = new BufferedReader(new FileReader("\\Edi810o311214.dat")))
{
String line;
while ((line = br.readLine())!= null)
{
//eliminates lines that do not begin with "total"
String lineEval = line.substring(0,5);
if (lineEval.equals("Total"))
{
//extracts total invoice field from line
String totalValue = line.substring(12,26);
double totalValueNum = Double.parseDouble(totalValue);
//shows output for testing purposes (will remove)
System.out.println(totalValueNum);
double total = 0;
int counter = 0;
total += totalValueNum;
counter++;
}
毫无疑问,我会花几个小时来研究这个问题,然后在最终放弃并发布后一两分钟内回答我自己的问题
try (BufferedReader br = new BufferedReader(new FileReader("\\Edi810o311214.dat")))
{
int counter = 0;
double total = 0;
String line;
while ((line = br.readLine())!= null)
{
//eliminates lines that do not begin with "total"
String lineEval = line.substring(0,5);
if (lineEval.equals("Total"))
{
counter++;
//extracts total invoice field from line
String totalValue = line.substring(12,26);
double totalValueNum = Double.parseDouble(totalValue);
total += totalValueNum;
//shows output for testing purposes (will remove)
System.out.println(totalValueNum);
}
}
System.out.println(counter);
System.out.println(total);
}
}
你所说的“与总计不符的行”是什么意思?如果您正在解析EDI,并且希望累积所有交换的总计(假设文件中有多个810),那么您需要在TDS段中获取该值。这是否已经是一个已翻译的文件(即X12转换为另一种格式)?