java中字符串数组元素的总和

Sum of string array elements in java

本问题已经有最佳答案,请猛点这里访问。

我有一个String数组,它既有整数也有字符串。我要计算所有整数数组元素的和。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Array{
String container[] = {"Joe","12","Chandler","15","67","Rajat",'a'};
int sum;
for(String element:container){
    int num = Integer.parseInt(element);
    sum += num;
}
void print(){
    System.out.print(sum);
}
}
class ArrayDemo{
public static void main(String args[]){
    Array a = new Array();
    a.print();
}
}

但是代码int num = Integer.parseInt(element)给出了数字格式异常,因为JoeChandlerRajat不是整数。那么,如何解决这个问题。答案应该是12+15+67=94的总和。

提前谢谢


将分析包含在try catch块中

1
2
3
4
5
6
7
8
for(String element:container){
  try {
    int num = Integer.parseInt(element);
    sum += num;
  catch (NumberFormatException nfe){
    System.out.println ("Element" + element +" in the array is not an integer");
  }
}


您需要处理该异常:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Array{
String container = {"Joe","12","Chandler","15","67","Rajat",'a'};
int sum;
for(String element:container){
    try {
        int num = Integer.parseInt(element);
    catch(Exception e) {
        continue;
    }
    sum += num;
}
void print(){
    System.out.print(sum);
}
}
class ArrayDemo{
public static void main(String args[]){
    Array a = new Array();
    a.print();
}
}

为此,请使用try-catch。如果发生异常,只需继续执行for循环中的下一个迭代。当它是一个数字时,它将被添加到sum中。

另一种方法是检查字符串中的每个字符是否为数字。这是一个相当长的代码,因此使用现有的代码(您需要包括ApacheCommons库):

1
NumberUtils.isNumber(String str)

1
StringUtils.isNumeric(String str)

如果这是真的,就把它加到sum中。