如何将字符串转换为整数

时间:2015-10-02 12:35:24

标签: java string int jgrasp

我有一个作业说:

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

  2. 您应该存储与课程第一位数字相对应的学生水平 右侧的代码,例如如果课程代码是CSC224,则该学生为4级。

  3. 您应该根据以下内容计算学生毕业的剩余学期数 当前级别,假设最后一级是10级。

  4. 我可以做前两点,但我是第三点。 我知道我不能在String和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
    

    我已经转换(等级)所以为什么不工作!!

4 个答案:

答案 0 :(得分:4)

而不是:

int RemainingTerms = Integer.parseInt("Level");

应该是:

int RemainingTerms = Integer.parseInt(Level);

然后您需要在下一行使用RemainingTerms而不是Level

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

除了

你真的应该遵循java命名约定并对变量使用较低的驼峰大小写,请在此处阅读更多内容:http://www.oracle.com/technetwork/java/codeconventions-135099.html

答案 1 :(得分:2)

试试这个:

@id

答案 2 :(得分:0)

  1. 您的变量Level是一个字符串。它始终是一个字符串。您无法使用字符串执行算术。
  2. 您创建了一个名为RemainingTerms的变量,它是一个int。在你的算术中使用它。
  3. 所以将该行更改为:

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

    在编译并运行程序之后,您还有另一个错误报告:

    int RemainingTerms = Integer.parseInt("Level");
    

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

    int RemainingTerms = Integer.parseInt(Level);
    

答案 3 :(得分:0)

试试这个......

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