JAVA较为复杂情况下的求和

分数 10

全屏浏览题目

切换布局

作者 abc618382

单位 河北科技大学

计算一个给定序列的整数和,序列中可能会混入无关的字母,求和的时候需要忽略。

输入格式:

输入为一行,元素直接使用空格分割。

输出格式:

输出为序列整数部分的和。

输入样例:

在这里给出一组输入。例如:

1 2 3 a 4 5

输出样例:

在这里给出相应的输出。例如:

15

 思路:

本题主要考察了如何输入字符串后将字符串转换为字符串数组,之后在判断每一个字符串数组的元素是否是为整形,如果是整形的话将它累加。

问题1:字符串如何转化为数组,并以空格为分割点

使用split()方法

问题2:如何判断字符串数组元素为整形

这里用JAVA自带的函数public static boolean isNumeric(String str)

public static boolean isNumeric(String str){

for (int i = str.length();--i>=0;){

if (!Character.isDigit(str.charAt(i))){

return false;

}

}

return true;

}
其实还有很多的方法可以参考其他大佬

问题3:如何把字符串转换成整形

使用Integer.parseInt()方法:这是将字符串转换为整数的最常见方法,前提是字符串必须包含一个有效的整数表示。如果字符串不是有效的整数表示,将抛出NumberFormatException异常。

 

代码:

import java.util.*;

public class Main{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();//nextLine()可以吃掉空格
        String [] arr = str.split(" ");//元素用空格分割,字符串转为字符串数组
        //System.out.println(Arrays.toString(arr));
        //这里是输出字符串数组测试用的
        int sum = 0;
        for(int i =0 ; i < arr.length; i++)
        {
            if(isNumeric(arr[i]))
            {
                try 
                {
                    int num = Integer.parseInt(arr[i]);
                    sum+=num;
                } 
                catch (NumberFormatException e)
                {
                    System.out.println("0");
                }
            }
        }
        System.out.println(sum);
    }
public static boolean isNumeric(String str)
    {
        for (int i = str.length();--i>=0;)
        {
            if (!Character.isDigit(str.charAt(i)))
            {
                return false;
            }
        }
    return true;
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值