gpt4 book ai didi

java - 将数组元素从字符串转换为整数

转载 作者:行者123 更新时间:2023-12-01 12:19:18 24 4
gpt4 key购买 nike

我正在尝试计算数组中存储的值,这是我的代码:

    public void printScores()
{

String sep = ":";
File inputfile = new File ("P:/SD/Assignment1/fbScores.txt");

String [] stringArr;
String line = "";



try {
Scanner filescan = new Scanner(inputfile);
while(filescan.hasNext())
{
line = filescan.nextLine();


stringArr = line.split(sep);
if(stringArr.length == 4)
{

System.out.println(stringArr[0]+"\t [" +stringArr[2]+"]\t|" + stringArr[1]+"\t["+ stringArr[3]+" ]\n");

}

else
{
throw new IllegalArgumentException("String " + line + " does not contain " + sep);
}



}
filescan.close();


}
catch (FileNotFoundException e)
{
System.out.println("problem " +e.getMessage());
}

}
public void totalGoals()
{
int count;
for (int i = 0; i<stringArr.length; i++)
{
//int num[i] = Integer.parseInt(stringArr);

}
}

}

基本上我只想将[2]和[3]中存储的数字相加,底部的totalGoals方法是我开始的地方,但不知道如何从字符串更改为整数,任何帮助将不胜感激!

更新:

公共(public)无效totalGoals() {

        int[] num = new int[stringArr.length]; 
int count = 0;
for (int i = 0; i<stringArr.length; i++)
{
num[i] = Integer.parseInt(stringArr[i]);
count = count + num[i];
System.out.println(count);
}
}

最佳答案

您想要单独解析每个字符串 - 您似乎正在尝试解析整个数组

int[] num = new int[stringArr.length]; //don't forget to declare your num[] array

for (int i = 0; i<stringArr.length; i++)
{
num[i] = Integer.parseInt(stringArr[i]); // stringArr[i] instead of stringArr
}
<小时/>

请注意当您将其从 for 循环 格式中打破时,这段代码实际上在做什么。

int[] num = new int[4];
num[0] = Integer.parseInt(stringArr[0]); //the for loop is starting at 0 and stopping
num[1] = Integer.parseInt(stringArr[1]); //when it hits 4
num[2] = Integer.parseInt(stringArr[2]);
num[3] = Integer.parseInt(stringArr[3]);

事实上,您只需要 23.. 您所需要做的就是将它们添加在一起。您已经有一个可以使用的 count 变量来代替 num

假设您只想循环 2 和 3...看看 for 循环

for (int i = 0; i < stringArr.length; i++)

int i = 0 //your loop is starting at 0
i < stringArr.length; //its ending when i is the array's length (should be 4 judging by your other code)
i++ // i increases by 1 at the end of each time through

因此,如果01没有用,请尝试使用int i = 2

您有一个 count 变量。也许它应该从 0 开始。您可以将值添加到 count 变量中,而不是设置 num 变量。

<小时/>

关于你的方法..它本身应该有效。

我也不确定哪一行是第73行

如果是第一行:int[] num = new int[stringArr.length];那么要么你的stringArr不存在(对于方法)或您的stringArr未初始化(同样,对于此方法)

看看您向我展示的代码,我猜问题出在第一行。

public void printScores() {
//other code

String[] stringArr;

//other code
}

public void totalGoals() {
int[] num = new int[stringArr.length];
int count = 0;
for (int i = 0; i<stringArr.length; i++)
{
num[i] = Integer.parseInt(stringArr[i]);
count = count + num[i];
System.out.println(count);
}
}

简单地这样做,你甚至无法编译。 totalGoals 中不存在 stringArr。这两种方法是独立的,无法“看到”彼此的变量。

如果您的代码如下所示 - 那么您将声明 stringArr 两次,并且您有两个名为同一事物的单独变量!

{
String[] stringArr; //This is what totalGoals would be using - it is never assigned

public void printScores() {
String[] stringArr; //This one is used and assigned within printScores
//but totalGoals cannot see/use it
}

public void totalGoals() {

}
}

关于java - 将数组元素从字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26805873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com