我正在从包含非分隔文档元数据的数据源创建分隔文本字符串。所有数据都按索引排序,然后是子索引,我想要做的第一件事就是为每条记录创建一个序列号。每行的第一个字符决定了这是一个索引还是子索引记录,我使用这些来增加数据,如下面的逻辑中所述,它按预期工作。
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}看着它,这是有道理的;我在方法中做的第一件事就是将变量重置为1.00
。在0
中初始化变量会给我提供范围问题 - main
无法识别变量。
我使用了generateSerial
的组合,但似乎没有任何效果。处理这个问题的最佳方法是什么?