gpt4 book ai didi

java - 计算平均值,字符串标记化练习

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:02 24 4
gpt4 key购买 nike

我已经尝试让这个程序运行 3 天了。我也一直在各种网站和 stackoverflow 上进行研究,但没有取得太大成功。

该程序的目标是接收可由任意数量的空格和单个分号分隔的用户输入。然后将整数相加并计算平均值。然而,诀窍是分数也可以实现,并且可以采用以下格式:12/33 或 (12/33)。

分数是满分为 100 的百分比分数。

我成功地消除了空格和分号,我只是不确定如何执行此代码的计算方面,特别是处理分数。

这是我当前的代码:

public static void main(String[] args) {
System.out.println("Enter a Set of Grades:");
Scanner messageIn = new Scanner(System.in);
String store = new String();
store = messageIn.nextLine();
store = store.trim().replaceAll(" +", "");
//store = store.trim().replaceAll("(", "");
//store = store.trim().replaceAll(")", "");
String[] dataSet = store.split(";");
//messageIn.close();
for (int i = 0; i<dataSet.length; i++) {
System.out.println(dataSet[i]);
}
}

非常感谢您的帮助

我还没有走到这一步,但例如这个代码是我的输入:

98;37; 12/33; (33/90); 88; 120/150;

输出将是:

平均值为:62.67

最佳答案

像这样检查个人成绩 contains 怎么样? a / 并单独处理该情况:

import java.util.Scanner;

class Main{
public static void main(String[] args) {
//Initialize scanner object
Scanner scanner = new Scanner(System.in);

//Prompt user for input
System.out.print("Enter a Set of Grades:");
String store = scanner.nextLine();

//Remove all white space and round brackets
store = store.replaceAll("[\\(\\)\\s+]","");

//Split input into individual grades
String[] grades = store.split(";");

double sum = 0;
//Loop over each entered grade and add to sum variable
for (String grade : grades) {
if(grade.contains("/")) {
double numerator = Double.parseDouble(grade.split("/")[0]);
double denominator = Double.parseDouble(grade.split("/")[1]);
sum += numerator/denominator * 100;
} else {
sum += Double.parseDouble(grade);
}
}

System.out.printf("The average is: %.2f\n", sum/grades.length);
}
}

用法示例:

Enter a Set of Grades: 98;37; 12/33; (33/90); 88; 120/150;
The average is: 62.67

尝试一下 here!

关于java - 计算平均值,字符串标记化练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50419881/

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