java - 将字符串转换为 double ?

标签 java

这是一个包含测试器类的两部分代码。由于某种原因,我无法弄清楚如何将此字符串变量转换为正确参与方程gradeNum = grad - .3 和gradeNum =grade + 0.3 的代码。有什么想法吗?

/** This is my class Grade */
    public class Grade
{

    private String grade;
    private double gradeNum;


// Constructor
public Grade(String showGrade)
{
    grade = showGrade;
    gradeNum = 0;
}


// getNumericGrade method to return grade number
public double getNumericGrade()
{
    if (grade.equalsIgnoreCase("A") || grade.equalsIgnoreCase("A+"))
{
    gradeNum = 4.0;
}
    else if (grade.equalsIgnoreCase("A-"))
{
    gradeNum = 3.7;
}


    if (grade.equalsIgnoreCase("B"))
{
    gradeNum = 3.0;
}
    else if (grade.equalsIgnoreCase("B+"))
{
    gradeNum = 3.3;
}
    else if (grade.equalsIgnoreCase("B-"))
{
    gradeNum = 2.7;
}


    if (grade.equalsIgnoreCase("C"))
{
    gradeNum = 2.0;
}
    else if (grade.equalsIgnoreCase("C+"))
{
    gradeNum = 2.3;
}
    else if (grade.equalsIgnoreCase("C-"))
{
    gradeNum = 1.7;
}


    if (grade.equalsIgnoreCase("D"))
{
    gradeNum = 1.0;
}
    else if (grade.equalsIgnoreCase("D+"))
{
    gradeNum = 1.3;
}
    else if (grade.equalsIgnoreCase("D-"))
{
    gradeNum = .7;
}

    if (grade.equalsIgnoreCase("F"))
{
    gradeNum = 0.0;
}

    return gradeNum;


    System.out.println("Invalid letter grade");
    return -1.0;


}
}


/** This is my class tester
 */

import java. util .Scanner;

/**
This program tests the numeric grade with a given letter grade.
*/
public class GradeTester 
{
public static void main(String[] args)
{
    Scanner in = new Scanner(System.in);

    System.out.println("Enter a letter grade: ");
    String showGrade = in.nextLine();

    Grade gg = new Grade(showGrade);

    System.out.print("Numeric Value: ");
    System.out.println(gg.getNumericGrade());

    in.close();

}
}

最佳答案

不要使用 if (grade.equalsIgnoreCase("B")) 等,而是使用:

if (Character.toUpperCase(grade.charAt(0)) == 'B')

并且不要使用 grade.equalsIgnoreCase("A-") 等,而是使用:

if (grade.length() > 1 && grade.charAt(1) == '-')

这应该足以让您解决问题。

注意:还需要进行其他更改,但我不想只是给您提供正确的代码。

关于java - 将字符串转换为 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26748440/

相关文章:

java - 使用 Java 或 Python 读取 OCaml 的 Marshall 文件

java - Android - 从微调器中选择项目后,如何使微调器显示该项目?

java - 在分配给 null 之前检查变量是否为 null?

java - 如果用户在 JTreeTable SwingX 中选择一行,我如何找出实际选择的节点

java - 如何告诉 Glassfish 使用哪个 OSGI 包或根本不使用它

java - 如何根据第一个字节解析不同的数据包类型

java - Java toString输出中@和#的区别?

java - 构建 RESTful 服务代码的正确方法

java - 在 Java 中向按钮添加 ActionListener

java - 如何通过java编程检索Active Directory中的属性 "unicodePwd"