如何将字符串转换为整数
How to convert a string to an integer
我有一个作业说:
课程代码的字符部分(课程代码的前3个字符),例如(csc), 需要
改为大写字母。
你应该存储对应于课程第一位的学生级别
右侧的代码,例如如果课程代码是 CSC224,则该学生处于第 4 级。
你应该计算学生毕业的剩余学期数
当前关卡,假设最后一关是10关
前两点我可以,但第三点我还行。
我知道我不能在 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
我已经转换了(等级)为什么还不行!!
试试这个:
System.out.print("Remaining Terms: " + (10 - Integer.valueOf(Level)) );
而不是:
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
- 您的变量
Level
是一个字符串。它始终是一个字符串。您不能对字符串执行算术运算。
- 您创建了一个名为
RemainingTerms
的变量,它是一个 int。在你的算术中使用它。
因此将该行更改为:
System.out.print("Remaining Terms: " + (10 - RemainingTerms));
您还有另一个错误,在您可以编译和 运行 程序之前不会报告该错误:
int RemainingTerms = Integer.parseInt("Level");
在这一行中,您尝试将文字字符串 "Level"
解析为整数,但这些字母并不代表数字。您要做的是传递您从课程代码中提取的字符串,而不是字母 L-e-v-el。
int RemainingTerms = Integer.parseInt(Level);
试试这个....
System.out.print("Remaining Terms: "+ (10 - Integer.parseInt(Level)) );
我有一个作业说:
课程代码的字符部分(课程代码的前3个字符),例如(csc), 需要 改为大写字母。
你应该存储对应于课程第一位的学生级别 右侧的代码,例如如果课程代码是 CSC224,则该学生处于第 4 级。
你应该计算学生毕业的剩余学期数 当前关卡,假设最后一关是10关
前两点我可以,但第三点我还行。 我知道我不能在 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
我已经转换了(等级)为什么还不行!!
试试这个:
System.out.print("Remaining Terms: " + (10 - Integer.valueOf(Level)) );
而不是:
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
- 您的变量
Level
是一个字符串。它始终是一个字符串。您不能对字符串执行算术运算。 - 您创建了一个名为
RemainingTerms
的变量,它是一个 int。在你的算术中使用它。
因此将该行更改为:
System.out.print("Remaining Terms: " + (10 - RemainingTerms));
您还有另一个错误,在您可以编译和 运行 程序之前不会报告该错误:
int RemainingTerms = Integer.parseInt("Level");
在这一行中,您尝试将文字字符串 "Level"
解析为整数,但这些字母并不代表数字。您要做的是传递您从课程代码中提取的字符串,而不是字母 L-e-v-el。
int RemainingTerms = Integer.parseInt(Level);
试试这个....
System.out.print("Remaining Terms: "+ (10 - Integer.parseInt(Level)) );