gpt4 book ai didi

java - 带有空格的字符串无法正确解析

转载 作者:行者123 更新时间:2023-12-01 18:10:55 25 4
gpt4 key购买 nike

我是Java新手,所以我的知识非常有限。我一直在尝试找出这段代码中的问题。

 import java.util.Scanner;
public class avgFinder {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Input numbers to average. Separate by a space.");
String nums = scan.next();
String[] parseNums = nums.split("[ ]");
double sum = 0;
int cnt = 0;
for (int a=0; a<=parseNums.length-1; a++) {
sum += Double.parseDouble(parseNums[a]);
cnt++;
}
double mean = sum/cnt;
System.out.println("Mean: " + mean);
}
}

但是当我输入一组数字时,只打印第一个数字而不是实际平均值。示例:

Input numbers to average. Separate by a space.
1 2 3
Mean: 1.0

另一件事是,如果我将 nums.split("[ ]") 替换为 nums.split("[,]") 并在之间放置逗号而不是空格输出中的数字,它实际上输出平均值。不过我更喜欢空间,它看起来更干净。为什么会发生这种情况?

最佳答案

试试这个

使用nextLine()而不是next()

nextLine returns complete line of text while next returns only one word

还可以使用nums.split("");

import java.util.Scanner;
public class avgFinder {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Input numbers to average. Separate by a space.");
String nums = scan.nextLine();
String[] parseNums = nums.split(" ");
double sum = 0;
int cnt = 0;
for (int a=0; a<=parseNums.length-1; a++) {
sum += Double.parseDouble(parseNums[a]);
cnt++;
}
double mean = sum/cnt;
System.out.println("Mean: " + mean);
}
}

关于java - 带有空格的字符串无法正确解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33069074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com