从数组中添加一个数字(按列)

时间:2015-11-18 19:55:22

标签: java arrays

我一直试图弄清楚如何将数组中的一个数字添加到数组中的另一个数字。我将String中的数字解析为整数,并按列分隔。然后,我将每列添加到一个数组中。

我想解决的是如何在列中添加所有数字。

这些数字来自文本文件。

// numbers.txt: 

Bob, 100, 98, 95
Alex, 85, 90, 92

我已经使用了bufferedReader并解析了数字,从String到int。

挑战在于按列添加数字。

例如,如果每个数组中有3个数字,我只想在每个数组中添加第一个数字。

Q1是[100,98,95] Q2是[85,90,92]

只有100 + 85在一起。

以下是我目前的代码。 任何有关如何进行的帮助都会很棒!谢谢你的时间。

int Q1 = Integer.parseInt(columns[1]);
int Q2 = Integer.parseInt(columns[2]);

ArrayList<Integer> Q1list = new ArrayList<>();
Q1list.add(Q1);
Q1list.add(Q2);


double total = 0.0;


for (int i = 0; i < Q1list.size(); i++) {
total += Q1list.get(i);
}

System.out.println(total);

2 个答案:

答案 0 :(得分:0)

好吧,通常当你想将数组中的数字加到一个总和中时,你要迭代该数组中的所有索引。从您编写的循环中,我无法以任何方式看到所有数字都进入数组。 请修改如何使用循环!

这是一个很好的解释,希望它有所帮助 Java: Array with loop

答案 1 :(得分:0)

我认为你应该至少有2列数组。

不要忘记你的索引(在你的循环中)

代码suiggested:

public static void main(String [] args){

int [] q1 = { 100 , 98 , 95 };
int [] q2 = { 85 , 90 , 92 };

List<Integer> sumList = new ArrayList<>();

// First solution (what you ask)

sumList.add( q1[0] + q2[0] );
System.out.println("Add Q1[0] + Q2[0]: " + sumList.get(0));

// Second solution (add all)
for( int i = 0 ; i < q1.length ; i++)
{
    sumList.add(q1[i] + q2[i]);
}

// Check your result
for( int i : sumList )
  System.out.println("Result: " + i);

}

结果给出:

// First solution (what you ask)
Add Q1[0] + Q2[0]: 185

// Second solution (add all)
Result: 185
Result: 185
Result: 188
Result: 187

我找到了你想要的东西:

// Scanner
StringTokenizer i1 = new StringTokenizer(" [100,98,95]", "[,]");
StringTokenizer i2 = new StringTokenizer(" [85,90,92]", "[,]");

List<Integer> q1List = new ArrayList<>();
List<Integer> q2List = new ArrayList<>();

while( i1.hasMoreTokens() ){
  try {
  Integer intRes = Integer.parseInt(i1.nextToken());
  System.out.println("Test1: " + intRes);
  q1List.add(intRes);
  }
  catch( NumberFormatException e) {}
}

while( i2.hasMoreTokens() ){
  try {
  Integer intRes = Integer.parseInt(i2.nextToken());
  System.out.println("Test2: " + intRes);
  q2List.add(intRes);
  }
  catch( NumberFormatException e) {}
}

// Second solution (add all)
for( int i = 0 ; i < q1List.size() ; i++)
{
    sumList.add(q1List.get(i) + q2List.get(i));
}


// Check your result
for( int i : sumList )
  System.out.println("Result 2 : " + i);

很抱歉很长时间,但我必须在网上找到答案。

Simples逐行读取文件并为每个新行设置新字符串... 之后,对于每个字符串,您可以在您的情况下使用Strink tokenizer和分隔符:“,”。 请注意您的第一个参数应为: null(代码) name(捕获此字符串) 其他(也许试试)

我在堆栈上找到了这个链接:

Using Java 8, what is the most preferred and concise way of printing all the lines in a file?

祝你好运