Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以使用方法从Java文件中读取和计算数据?_Java - Fatal编程技术网

有没有一种方法可以使用方法从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();
where
line
这是您的
扫描仪的名称
。如果我在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;
}