java 使用 append 从文件的一行中提取数据
java using append to extract data from a line of a file
我对 Java 非常陌生,您可以从我的代码中看出这一点。欢迎任何帮助:)
我有一个文件包含如下行:
文件中的列:7
确切文件数量(行):118
准确的文件记录长度(可变块中的字节数):52
我想用append来提取标签后面的数字,但是returns是零,不是标签后面的实际数字。这是我拥有的:
public int extractVariables(String aLine)
{
Scanner scan = new Scanner(actualFile);
while(scan.hasNext())
{
String line = scan.nextLine();
if(line.contains("Columns in File:"))
{
StringBuilder numOfVariables = new StringBuilder();
for(int i = 16; i < line.length(); i++)
{
numOfVariables.append(charAt(i)).trim();
}
// check if the information is missing
if(numOfVariables != null && !numOfVariables.equals(""))
{
int variables = Integer.parseInt(numOfVariables);
}
else
{
System.out.print("Number of varibales is missing!");
}
}
return variables;
}
}
此外,我要求用户使用命令行参数输入一个文件,并将该文件存储到 actualFile 中,如下所示:
try{
File actualFile = new File(args[0]);
System.out.println("File was processed: true");
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("File was processed: false. Re-enter filename.");
return;
}
所以我为扫描仪设置了 actualFile 以打开文件并读取行,扫描仪是否读取了正确的文件?也许这就是方法 returns 零的原因?
而不是做
for(int i = 16; i < line.length(); i++)
{
numOfVariables.append(charAt(i)).trim();
}
使用 nextInt() 似乎更好;
所以,代码看起来像这样:
line.nextInt();
此外,要检查是否有号码或缺少号码,您可以使用:
if(line.hasNextInt()) {...}
我对 Java 非常陌生,您可以从我的代码中看出这一点。欢迎任何帮助:)
我有一个文件包含如下行:
文件中的列:7
确切文件数量(行):118
准确的文件记录长度(可变块中的字节数):52
我想用append来提取标签后面的数字,但是returns是零,不是标签后面的实际数字。这是我拥有的:
public int extractVariables(String aLine)
{
Scanner scan = new Scanner(actualFile);
while(scan.hasNext())
{
String line = scan.nextLine();
if(line.contains("Columns in File:"))
{
StringBuilder numOfVariables = new StringBuilder();
for(int i = 16; i < line.length(); i++)
{
numOfVariables.append(charAt(i)).trim();
}
// check if the information is missing
if(numOfVariables != null && !numOfVariables.equals(""))
{
int variables = Integer.parseInt(numOfVariables);
}
else
{
System.out.print("Number of varibales is missing!");
}
}
return variables;
}
}
此外,我要求用户使用命令行参数输入一个文件,并将该文件存储到 actualFile 中,如下所示:
try{
File actualFile = new File(args[0]);
System.out.println("File was processed: true");
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("File was processed: false. Re-enter filename.");
return;
}
所以我为扫描仪设置了 actualFile 以打开文件并读取行,扫描仪是否读取了正确的文件?也许这就是方法 returns 零的原因?
而不是做
for(int i = 16; i < line.length(); i++)
{
numOfVariables.append(charAt(i)).trim();
}
使用 nextInt() 似乎更好; 所以,代码看起来像这样:
line.nextInt();
此外,要检查是否有号码或缺少号码,您可以使用:
if(line.hasNextInt()) {...}