java 输入对应文字时求和与平均值

判定是否为数字
当输入的数据最后是平均二字时求输入数据的平均值
当输入的数据最后是求和二字时求输入数据的和

求帮助

代码如下:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
    public static void main(String[] args) {
        Scanner in =new Scanner(System.in);
        String str=in.next();
        String[] strs = str.split(",");
        List<Integer> list=new ArrayList<>();
        String regEx="[^0-9]";
        Pattern p = Pattern.compile(regEx);
        Matcher m;
        for(int i=0;i<strs.length-1;i++){
             m=p.matcher(strs[i]);
            String trim = m.replaceAll("").trim();
            if (!"".equals(trim)) {
                list.add(Integer.parseInt(trim));
            }
        }
        int sum=0;
        for (int i=0;i<list.size();i++){
            sum+=list.get(i);
        }
        if (strs[strs.length-1].equals("平均")){
            System.out.println(sum*1.0/list.size());
        }else{
            System.out.println(sum);
        }

    }
}

用next()读取字符串,写个单独的函数判断字符串是否是数字字符串,如果是,就继续求和或求平均值,否则就退出。
运行结果及代码如下:
数字输入求和:

img


数字输入求平均:

img

非数字输入:

img


import java.util.Scanner;

public class Test {
    
    //判断字符串是否是数字
    public static boolean isNumberic(String s){
        for(int i = 0;i<s.length();i++){
            if(!Character.isDigit(s.charAt(i)))
                return false;
        }
        return true;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1 = sc.next();
        String s2 = sc.next();
        String s3 = sc.next();
        if( (!isNumberic(s1)) || (!isNumberic(s2)) )
            System.out.println("输入的前两个字符串不全是数字");
        else{
            int n1 = Integer.parseInt(s1);
            int n2 = Integer.parseInt(s2);
            if(s3.equals("求和"))
                System.out.println(s1+"与" + s2+"的和为"+(n1+n2));
            else if(s3.equals("平均"))
                System.out.println(s1+"与" + s2+"的均值为"+(n1+n2)/2.0);
            else
                System.out.println("输入错误!");
        }
    }
}


那你不要一直用nextint
全部按字符串读进来
然后split分解
最后一项单独拎出来做if判断,其他项转int

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632