Java 如何将数字显示为Astrik

Java 如何将数字显示为Astrik,java,Java,因此,我必须将总成绩(我已经计算过)显示为Astrick。输出应该是这样的, A=****** B=****** C=****** D=***** 这是我的代码: import java.io.*; import java.util.*; public class grades { public static final void main(String args[]) throws FileNotFoundException { System.ou

因此,我必须将总成绩(我已经计算过)显示为Astrick。输出应该是这样的,

A=******

B=******

C=******

D=*****
这是我的代码:

import java.io.*; 
import java.util.*;
public class grades 
{

    public static final void main(String args[]) throws FileNotFoundException
    {
        System.out.println("name");
        Scanner myScanner = new Scanner(new File("students.txt"));//Creating new scanner object 

            int lineNumber =1;//Line Number for each student.
            while (myScanner.hasNext())
            {

                String firstName = myScanner.next();//Scanning student first name and storing in the string
                String lastName = myScanner.next();// Scanning student last name and storing in the string
                String athleteFlag=myScanner.next();//Scanning for verification of athlete and storing in the string
                String athlete= "Y";
                String notAthlete = "N";
                //if else statement to declare if student is a athlete
                 if (athleteFlag.equals(athlete))
                {
                     athleteFlag="YES";
                }
                 else if(athleteFlag.equals(notAthlete))
                 {
                    athleteFlag="NO";               
                 }
                int quiz1=myScanner.nextInt();// Grades on Quiz 1
                int quiz2=myScanner.nextInt();// Grades on Quiz 2
                int quiz3=myScanner.nextInt();// Grades on Quiz 3
                int quiz4=myScanner.nextInt();// Grades on Quiz 4
                int quiz5=myScanner.nextInt();// Grades on Quiz 5
                int test1=myScanner.nextInt();// Grades on Test 1
                int test2=myScanner.nextInt();// Grades on Test 2
                //student quiz average
                double quizAverage = (double)(quiz1+quiz2+quiz3+quiz4+quiz5)/5;
                //Overall Numerical Grade
                float overallNumericalGrade =(float)(quizAverage+test1+test2)/3;
                //Students letter Grade, eligibility and counting number of each grade
                String grade;
                String eligibility;
                int gradeA=0;
                int gradeB=0;
                int gradeC=0;
                int gradeD=0;
                int gradeF=0;
                    if(overallNumericalGrade>=90.0)
                    {
                        grade="A";
                        eligibility ="YES";
                        gradeA++;
                    }

                    else if(overallNumericalGrade>=80.0)
                    {
                        grade = "B";
                        eligibility ="YES";
                        gradeB++;
                    }
                    else if(overallNumericalGrade>=70.0)    
                    {
                        grade = "C";
                        eligibility ="YES";
                        gradeC++;
                    }
                    else if(overallNumericalGrade>=60.0)
                    {
                        grade = "D";
                        eligibility ="NO";
                        gradeD++;
                    }
                    else
                    {
                        grade = "F";
                        eligibility ="NO";
                        gradeF++;
                    }


                System.out.println(lineNumber + " "+lastName+","+firstName+"/ "+athleteFlag+ "/ " + eligibility +
                        " / " +"Grades on all quiz "+ quiz1+ " "+quiz2+" "+quiz3+" "+ quiz4+" "+quiz5+" "+test1+" "+
                        test2+ " /" +"quiz average is " + quizAverage +"\n " + "Overall Numerical grade is " +
                        overallNumericalGrade+" / "+ "Student letter Grade is " + grade);
                lineNumber++;  

            }

    } 

}

我只是不知道如何输出这个。任何帮助都将受到感谢。提前感谢。

假设所有等级的总数为
总体数值等级
,并且您希望在最后一次输出中将其显示为
*
(因为这是代码中唯一的输出),您可以这样做

System.out.println(lineNumber + " "+lastName+","+firstName+"/ "+athleteFlag+ "/ " + eligibility +
                    " / " +"Grades on all quiz "+ quiz1+ " "+quiz2+" "+quiz3+" "+ quiz4+" "+quiz5+" "+test1+" "+
                    test2+ " /" +"quiz average is " + quizAverage +"\n " + "Overall Numerical grade is " +
                    String.valueOf(overallNumericalGrade).replaceAll(".", "*")+" / "+ "Student letter Grade is " + grade);
重要的部分在这里

String.valueOf(overallNumericalGrade).replaceAll(".", "*")
其中,我将总值转换为字符串,然后用
*
替换所有内容

如果总数不是总体数值等级,则只需对数值进行替换即可

编辑:要回答您的评论,请在此处进行更多解释

String.replaceAll
是一种方法,它替换与给定的
正则表达式(regex)
对应的所有内容,该正则表达式由我们作为第二个参数给出(在这种情况下,
*
)。我给出的正则表达式只是一个
,它表示除换行符以外的任何字符。因此,
String.valueOf(overallNumericalGrade)
将其转换为
String
,这样我就可以调用
replaceAll
方法,然后用
*
替换所有内容

至于第二个问题的答案,您可以再次使用替换项将
等级的
换行符
替换为一个简单的空格,以便在同一行上显示所有内容。差不多

grade.replaceAll(System.getProperty("line.separator"), " ");

请注意,我使用了
System.getProperty(“line.separator”)
而不是
char
,这样它就可以在任何系统上工作。

我假设所有分数的总和是
overallNumericalGrade
?不,这只是他们测验的平均值和测试1和测试2的分数的平均值。我还没有把计数结果输出。正如你所看到的,我把分数计算为A++或B++级,我真的没有得到。我对java相当陌生。你能再解释一下吗。谢谢我面临的另一个问题是,分数输出在每一行输出中都是一个接一个的,因为我从文本文件的不同行扫描变量。如何在一行中输出成绩?thanks@MithunIslam看到我的编辑,希望它有帮助。