Минус StringTokenizer является ошибкой?

У меня есть код, чтобы продолжить и получить минимум StringTokenizer но результат min = 999999,

public static double minStringTokenizer(StringTokenizer stz) {
    double min = 999999;
    while (stz.hasMoreTokens()) {
        String temp1 = stz.nextToken();
        double temp2 = Double.parseDouble(temp1);
        if (min > temp2) {
            min = temp2;
        }
    }
    return min;
}

1 ответ

Это работает для вас?

public class Main {

    public static void main(String[] args) throws Exception {

        System.out.println(minStringTokenizer(new StringTokenizer("1,2,99,-3,4,888,-1",",")));
        System.out.println(minStringTokenizer(new StringTokenizer("1199999999999,99999999999",",")));
        System.out.println(minStringTokenizer(new StringTokenizer("5,4,3,2",",")));

        //throws err
        //System.out.println(minStringTokenizer(new StringTokenizer("5xxx,4,3,2",",")));
    }

    public static double minStringTokenizer(StringTokenizer stz) {

        if(stz==null || !stz.hasMoreTokens()) {
            throw new IllegalArgumentException("stz may not be null or empty");
        }

        double min = Double.MAX_VALUE;
        while (stz.hasMoreTokens()) {
            String temp1 = stz.nextToken();
            double temp2 = Double.parseDouble(temp1);
            min = Math.min(min, temp2);
        }
        return min;
    }
}
Другие вопросы по тегам