905853663 发表于 2022-2-7 23:07:24

java 不确定个数输入求和

题目如下

给出一串的数,请计算它们的和。输入只有一行,包含若干个数,数之间用空格隔开。数字和答案保证在int范围内。


就是说输入不确定是多少个,这种情况应该怎么写啊,
import java.util.*;

public class Main {
        public static void main(String[] args) {
                int a=0;
                Scanner in = new Scanner(System.in);
                while(in.hasNextLine()) {
                        a += in.nextInt();
                }
                in.close();
                System.out.println(a);
        }
}
以上是我写的,但是执行不出结果,求解惑!!!!

傻眼貓咪 发表于 2022-2-8 09:25:48

试试这个:import java.util.Scanner;

public class Main {
        public static void main(String[] args) {
                int sum = 0;
                Scanner in = new Scanner(System.in);
                while (in.hasNext()) {
                        if (in.hasNextInt())
                        sum += in.nextInt();
                        else
                        in.next();
                }
                in.close();
                System.out.println(sum);
        }
}

Twilight6 发表于 2022-2-8 09:37:19


直接用做循环判断会阻塞,改成这样吧:

import java.util.*;

public class Main {
    public static void main(String[] args) {
      int a = 0;
      Scanner in = new Scanner(System.in);
      if (in.hasNextLine()) {
            String[] temp = in.nextLine().split(" ");
            for (int i = 0; i < temp.length; i++) {
                a += Integer.parseInt(temp);
            }
      }
      in.close();
      System.out.println(a);
    }
}

905853663 发表于 2022-2-8 11:31:08

傻眼貓咪 发表于 2022-2-8 09:25
试试这个:

也不行,
例如输入这一行:
1 6 -9 6 5
还是不出结果

905853663 发表于 2022-2-8 11:33:03

Twilight6 发表于 2022-2-8 09:37
直接用做循环判断会阻塞,改成这样吧:

这样可以了,但是貌似有点复杂哈哈

905853663 发表于 2022-2-8 11:51:33

Twilight6 发表于 2022-2-8 09:37
直接用做循环判断会阻塞,改成这样吧:

懂了,谢谢!之前不知道split这个方法,请问next和nextLine方法的区别是什么

Twilight6 发表于 2022-2-8 17:04:09

905853663 发表于 2022-2-8 11:51
懂了,谢谢!之前不知道split这个方法,请问next和nextLine方法的区别是什么


next 方法返回的是 非空格的有效字符,比如你输入:1 2 3 依次循环 3 次 next 会得到 "1" "2" "3"

nextLine 方法返回的是 回车 之前的所有字符,相当于此时输入的一整行字符 例如:1 2 3 返回的就是 "1 2 3"

split 分割字符串,返回一个字符串类型的数组

页: [1]
查看完整版本: java 不确定个数输入求和