java

时间:2016-07-26 08:28:31

标签: java arrays string

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

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)给出了NumberFormatException,因为JoeChandlerRajat不是整数。那么,如何解决这个问题。 答案应该是12+15+67=94

的总和

提前致谢

2 个答案:

答案 0 :(得分:2)

将您的解析包含在try catch块中

setwd("/path/to/your/files")
files <- c("mydata1.bin","mydata2.bin")
list_of_df <- lapply(files,read.delim,sep="`",stringsAsFactors=FALSE,header=FALSE)
final_df <- do.call(rbind,list_of_df)

答案 1 :(得分:-1)

您需要处理该异常:

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

另一种方法是检查字符串中的每个char是否为数字。这是一个很长的代码,所以使用一个现有的(你需要包含Apache Commons库):

NumberUtils.isNumber(String str)

StringUtils.isNumeric(String str)

如果这是真的,请将其添加到sum