在此类中,我添加了方法addstudent(),此处的参数至少应具有8个数字,并且第一位数字为零。当我运行程序时,我总是变得虚假。
import java.io.*;
public class Module {
public static final int MAX_STUDENTS = 300;
private String module;
private int id;
private String lec;
private String code;
private int sem;
private String modCode;
private String group;
public Module() {
module = "module";
}
public Module(String modCode) {
this.modCode = modCode;
}
public boolean addStudent(int id) {
String s_id = Integer.toString(id);
int idlength = s_id.length();
char fdigit = s_id.charAt(0);
boolean b1 = fdigit == 0;
if ((idlength >= 8) && (b1)) {
return true;
}
else {
return false;
}
}
}
这是测试班-
import java.io.*;
public class ModuleTest {
public static void main(String[] args) {
Module Software = new Module("0123456789");
Software.addStudent(012344567);
System.out.println(Software.addStudent(012344567));
}
}
最佳答案
当您将数字存储在int
变量中时,没有前导零的概念。例如,1和01表示完全相同,因此无法区分。
如果要保留前导零,则应将id
作为String
传递到函数中。
当我们讨论这个主题时,值得注意的是012344567
是octal文字,我很确定这不是您想要的(请参阅JLS中的八进制文字)。
最后,要检查char
变量是否包含数字零,应将其与'0'
而不是与0
进行比较。后者等效于与'\u0000'
(即Unicode NULL character)进行比较。
关于java - 模块故障,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40184365/