繁体   English   中英

如何将字符串转换为整数

[英]How to convert a string to an integer

我有一个作业说:

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

  2. 您应该从右侧存储与课程代码的第一位相对应的学生级别,例如,如果课程代码为CSC224,则该学生处于4级。

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

我可以做到前两点,但我在第三点有库存。 我知道我不能在字符串和整数之间进行操作,因此我必须将str转换为整数。 但这对我没有用,我不知道为什么?!

    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

我已经转换了(Level),所以为什么不起作用!

代替:

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

应该:

int RemainingTerms = Integer.parseInt(Level);

然后,您需要在下一行中使用RemainingTerms not Level

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

在旁边

您确实应该遵循Java命名约定,并对变量使用小写的驼峰字母,请在此处阅读更多信息: http : //www.oracle.com/technetwork/java/codeconventions-135099.html

尝试这个:

System.out.print("Remaining Terms: " + (10 - Integer.valueOf(Level)) );
  1. 您的变量Level是一个字符串。 它总是一个字符串。 您不能使用字符串执行算术运算。
  2. 您创建了一个名为RemainingTerms的变量RemainingTerms 在算术中使用它。

因此,将该行更改为:

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

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

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

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

int RemainingTerms = Integer.parseInt(Level);

尝试这个....

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM