我正在从包含非分隔文档元数据的数据源创建分隔文本字符串。所有数据都按索引排序,然后是子索引,我要做的第一件事就是为每条记录创建一个序列号。每行的第一个字符指示这是索引还是子索引记录,我使用这些来递增数据,如下面的逻辑中所述,它按预期工作。
import java.util.*;
import java.io.*;
import java.nio.file.*;
import java.util.regex.*;
import java.lang.StringBuilder;
//
public class mdata
{
public static void main(String[] args)
{
double indexNo = 0;
double subIndexNo = 0;
double recNo = 0 ;
try
{
FileInputStream inputStream = new FileInputStream("whidata0.htm");
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
String inputLine = null;
while((inputLine=br.readLine())!=null)
{
String recordNumber = "";
if (inputLine.trim().startsWith("aIE(2")) {
indexNo = indexNo + 1;
subIndexNo = .00;
} else
if (inputLine.trim().startsWith("aIE(3")) {
subIndexNo = subIndexNo + .01;
}
recNo = indexNo + subIndexNo;
System.out.println(recNo);
}
}
//
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
}
}
我有其他应用程序需要我序列化数据,并且想要创建一个分配序列号的独立方法。我遇到了一些可能与范围相关的问题,我需要一些额外的眼睛来帮助我了解正在发生的事情。
到目前为止,这是我创建序列化方法的地方:
import java.util.*;
import java.io.*;
import java.nio.file.*;
import java.util.regex.*;
import java.lang.StringBuilder;
//
public class mdata2
{
public static void main(String[] args)
{
try
{
FileInputStream inputStream = new FileInputStream("whidata0.htm");
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
String inputLine = null;
while((inputLine=br.readLine())!=null)
{
recNo = generateSerial(inputLine.trim());
System.out.println(recNo);
}
}
//
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
}
//
public static double generateSerial(String inputLine)
{
double indexNo = 0; // where do
double subIndexNo = 0; // these have
double recNo = 0 ; // to go?
String recordNumber = "";
if (inputLine.trim().startsWith("aIE(2")) {
indexNo = indexNo + 1;
subIndexNo = .00;
} else
if (inputLine.trim().startsWith("aIE(3")) {
subIndexNo = subIndexNo + .01;
}
recNo = indexNo + subIndexNo;
System.out.println(recNo);
return recNo;
}
}
在第一个代码块中,我recNo
打印为一个序列1.00
, 2.00
, 2.01
, 2.02
,2.03
等3.00
。在第二个中,相同的序列返回为1.00
, 1.00
, 1.01
, 1.01
,1.01
等1.00
。看看它,这是有道理的;我在该方法中做的第一件事是将变量重置为0
. 初始化变量main
给我范围问题 -generateSerial
无法识别变量。
我玩过使用组合,this.[variableName]
但这似乎没有任何效果。处理这个问题的最佳方法是什么?