Java 如何将字符串转换为整数

Java 如何将字符串转换为整数,java,string,int,jgrasp,Java,String,Int,Jgrasp,我的任务是: 课程代码的字符部分(课程代码的前3个字符),例如(csc),需要 请改为大写字母 您应该存储与课程第一位数字对应的学生级别 右侧的代码,例如,如果课程代码为CSC224,则该学生处于4级 您应该根据以下公式计算学生毕业的剩余学期数: 当前级别,假设最后一个级别是级别10 我可以做到前两点,但我在第三点上有存货。 我知道我不能在字符串和Int之间进行运算,所以我必须将str转换为Int。 但这对我不起作用,我不知道为什么 import java.util.*; pub

我的任务是:

  • 课程代码的字符部分(课程代码的前3个字符),例如(csc),需要 请改为大写字母

  • 您应该存储与课程第一位数字对应的学生级别 右侧的代码,例如,如果课程代码为CSC224,则该学生处于4级

  • 您应该根据以下公式计算学生毕业的剩余学期数: 当前级别,假设最后一个级别是级别10

  • 我可以做到前两点,但我在第三点上有存货。 我知道我不能在字符串和Int之间进行运算,所以我必须将str转换为Int。 但这对我不起作用,我不知道为什么

        import java.util.*;
        public class HighSpecialCourseCode
        {
        static Scanner input = new Scanner (System.in);
        public static void main (String[] args)
        {
    
    
        // declaring 
        String CourseCode;
        String Level ;
    
        // input
        System.out.println("Course code:");
        CourseCode=input.next().toUpperCase();
        System.out.println("\nCourse Code: "+ CourseCode);
    
        // output 
        Level=CourseCode.substring(CourseCode.length()-1);
        System.out.println("Student Level: "+ Level);
    
        int RemainingTerms = Integer.parseInt("Level");
        System.out.print("Remaining Terms: " + (10 - Level) );
    
    
        }
        } 
    
    这是我的代码,当我编译它时,我得到:

    HighSpecialCourseCode.java:25: error: bad operand types for binary operator '-'
    System.out.print("Remaining Terms: "+ (10 - Level) );
                                         ^
      first type:  int
      second type: String
    1 error
    
    我已经转换(级别)了,为什么不工作

    试试这个:

    System.out.print("Remaining Terms: " + (10 - Integer.valueOf(Level)) );
    
    试试这个:

    System.out.print("Remaining Terms: " + (10 - Integer.valueOf(Level)) );
    
    而不是:

    int RemainingTerms = Integer.parseInt("Level");
    
    应该是:

    int RemainingTerms = Integer.parseInt(Level);
    
    然后您需要在下一行中使用
    remaingterms
    not
    Level

    System.out.print("Remaining Terms: " + (10 - RemainingTerms) );
    
    在一边 您确实应该遵循java命名约定,并对变量使用小写字母,请阅读此处的更多内容:

    ,而不是:

    int RemainingTerms = Integer.parseInt("Level");
    
    应该是:

    int RemainingTerms = Integer.parseInt(Level);
    
    然后您需要在下一行中使用
    remaingterms
    not
    Level

    System.out.print("Remaining Terms: " + (10 - RemainingTerms) );
    
    在一边 您确实应该遵循java命名约定,并对变量使用小写字母,请阅读以下内容:

  • 变量
    Level
    是一个字符串。它总是一根弦。不能对字符串执行算术运算
  • 您创建了一个名为
    remaingterms
    的变量,该变量是整数。请在算术中使用它
  • 因此,将该行更改为:

    System.out.print("Remaining Terms: " + (10 - RemainingTerms));
    

    您还有一个错误,在编译和运行程序之前不会报告:

    在这一行中,您尝试将文本字符串
    “Level”
    解析为整数,但这些字母并不表示数字。您要做的是传递从课程代码中提取的字符串,而不是字母L-e-v-el

    int RemainingTerms = Integer.parseInt(Level);
    
  • 变量
    Level
    是一个字符串。它总是一根弦。不能对字符串执行算术运算
  • 您创建了一个名为
    remaingterms
    的变量,该变量是整数。请在算术中使用它
  • 因此,将该行更改为:

    System.out.print("Remaining Terms: " + (10 - RemainingTerms));
    

    您还有一个错误,在编译和运行程序之前不会报告:

    在这一行中,您尝试将文本字符串
    “Level”
    解析为整数,但这些字母并不表示数字。您要做的是传递从课程代码中提取的字符串,而不是字母L-e-v-el

    int RemainingTerms = Integer.parseInt(Level);
    
    试试这个

    System.out.print("Remaining Terms: "+ (10 - Integer.parseInt(Level)) );
    
    试试这个

    System.out.print("Remaining Terms: "+ (10 - Integer.parseInt(Level)) );
    

    可能重复从未将级别从字符串转换为int有关变量命名约定的文章:可能重复从未将级别从字符串转换为int有关变量命名约定的文章: