最高和最低

本文介绍了一种在Java中处理一串空格分隔数字的方法,通过三种不同的实现方式找到并返回序列中的最大和最小数字。这包括使用ArrayList和Collections进行排序,利用Java 8 Stream API的高效处理,以及通过循环迭代结合Math库函数来实现。

题目: 在一串空格分隔的数字中,你要返回最高和最低的数字。

案例:

HighAndLow("1 2 3 4 5") // return"5 1"
HighAndLow("1 2 -3 4 5")// return"5 -3"
HighAndLow("1 9 3 4- 5")// return"9-5"

解答:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Kata {

    //我自己解答的
    public static String HighAndLow1(String numbers) {
        String[] str = numbers.split(" ");
        List<Integer> li = new ArrayList<Integer>();
        for (int i = 0; i < str.length; i++) {
            li.add(Integer.parseInt(str[i]));
        }
        Collections.sort(li);
        int low = li.get(0);
        int high = li.get(li.size() - 1);
        return high + " " + low;
    }

    //参考网友的
    public static String HighAndLow2(String numbers) {

        int min = Arrays.stream(numbers.split(" ")).mapToInt(i -> Integer.parseInt(i)).min().getAsInt();

        int max = Arrays.stream(numbers.split(" ")).mapToInt(i -> Integer.parseInt(i)).max().getAsInt();

        return String.format("%d %d", max, min);

    }

    //参考网友的
    public static String HighAndLow3(String numbers) {
        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        String nums[] = numbers.split(" ");

        for (String s : nums) {
            int num = Integer.parseInt(s);

            max = Math.max(max, num);
            min = Math.min(min, num);
        }
        return "" + max + " " + min;
    }

    public static void main(String[] args) {
        System.out.println(HighAndLow1("1 2 3 4 5"));
        System.out.println(HighAndLow2("1 2 3 4 5"));
        System.out.println(HighAndLow3("1 2 3 4 5"));
    }
}

转载于:https://www.cnblogs.com/hglibin/p/10041379.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值