有没有一种方法可以使用方法从Java文件中读取和计算数据?
在我的课堂上,我们使用方法从文本文件计算数据。如果我有一个像这样的文件:有没有一种方法可以使用方法从Java文件中读取和计算数据?,java,Java,在我的课堂上,我们使用方法从文本文件计算数据。如果我有一个像这样的文件: Bob 25 Molly 30 Dylan 10 Mike 65 是否可以从文件中提取此数据,然后将其发送到方法进行计算,然后将该计算返回到main上显示?我对Java如何能够跳过每一行并计算数字而不是人名感到困惑。我正在考虑使用inputFile.nextDouble()和inputFile.nextLine()。但是,如果我应该将文本文件中的行变量读为双倍变量,那么如何设置一个字符串来读取文本文件中的行呢?对于所有的
Bob
25
Molly
30
Dylan
10
Mike
65
是否可以从文件中提取此数据,然后将其发送到方法进行计算,然后将该计算返回到main上显示?我对Java如何能够跳过每一行并计算数字而不是人名感到困惑。我正在考虑使用
inputFile.nextDouble()
和inputFile.nextLine()代码>。但是,如果我应该将文本文件中的行变量读为双倍变量,那么如何设置一个字符串来读取文本文件中的行呢?对于所有的问题,我感到抱歉,我已经在这个问题上纠缠了很长时间,这让我发疯了>我建议您使用ArrayList
阅读完整文件:
Scanner s = new Scanner(new File(//Here the path of your file));
int number;
String name;
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext())
{
list.add(s.nextLine());
}
使用%
您将获得除法的其余部分(我使用的是成对数字的属性)。使用Integer.parseInt
可以将字符串
解析为int
所以现在你可以用这些数字来操作或者做任何你想做的事情
编辑:这里有一个不使用ArrayList的示例。在本例中,我将使用nextLine()
和nextInt()
函数:
Scanner s = new Scanner(new File(//Here the path of your file));
int count = 0;
int number;
int name;
while(s.hasNext())
{
if(i%2 == 0)
{
number = s.nextInt();
s.nextLine();
//You can use the references to your methods with this number
}
else
{
name = s.nextLine();
}
count = count + 1;
}
如果您对我为什么在number
之后使用s.nextLine()
而不存储任何值有疑问,您可以查看我对该问题的回答:
我希望它会对你有帮助 您应该交替使用nextLine()
和nextInt()
阅读此文件时请参阅:阅读两行,第一行是名称,第二行是数字(您必须将其从字符串转换为数字),然后再阅读两行,等等……非常感谢!我尝试过使用数组,但显然我们不允许使用,因为我们还没有讨论过它=(没有数组还有其他方法吗?@robguy22是的,你可以这样做,但我给了你一个更快、更清晰的答案(至少在我看来)。如果你想逐行获取,那么你必须使用line.nextLine();
和line.nextInt();
whereline
这是您的扫描仪的名称
。如果我在while循环中使用它,您认为它会遍历文件中的整个列表吗?@robguy22当然,之后我会编辑我的答案并将两个选项都放进去。谢谢!这里也有您的私人消息吗?我对堆栈溢出有点陌生>。
Scanner s = new Scanner(new File(//Here the path of your file));
int count = 0;
int number;
int name;
while(s.hasNext())
{
if(i%2 == 0)
{
number = s.nextInt();
s.nextLine();
//You can use the references to your methods with this number
}
else
{
name = s.nextLine();
}
count = count + 1;
}
Scanner sc=new Scanner(new File(/* Path to the file*/));
int i=0;
while(sc.hasNext())
{
if(i==0)
{
name=sc.nextLine();
}
else
{
number=sc.nextInt();
}
i=1-i;
}