我在Stack Overflow中查找了与我的其他问题类似的其他问题,但是这些问题都无法解决我的问题。因此,基本上,我的问题是该程序无法执行,因为它对if语句说“ int cannot be dereferenced
”。我该如何解决这个问题?
好吧,我尝试在大括号中移动,并尝试了.length()的不同方法,但没有任何效果。
private void generateButtonActionPerformed(java.awt.event.ActionEvent evt) {
int username, password, random;
username = Integer.parseInt(usernameTextField.getText());
password = Integer.parseInt(passwordTextField.getText());
if (password.length() != 7) {
}
}
我正在NetBeans中使用GUI。变量username和password用于文本字段,正如您在代码中看到的那样,我将“ username”和“ password”的所有输入数据转换为数值。因此,对于该问题,我希望if语句显示变量“ password”的长度,但显示错误,指出“ int cannot be dereferenced
”?
答案 0 :(得分:2)
您在这里遇到问题:
if (password.length() != 7){
int
没有length()
方法,与String不一样,如果要检查密码字段的长度,则可以使用:
if (passwordTextField.getText().length() != 7) {
或者如果您将密码用作整数,则需要检查整数的长度,然后使用:
if (String.valueOf(password).length() != 7) {
答案 1 :(得分:1)
函数length()用于字符串,如果要获取数字的数字,则应执行以下操作:
int length = String.valueOf(password).length();
答案 2 :(得分:1)
编译器错误完全正确
您已将密码声明为int
,并且int没有长度方法
我认为您想做的是
private void generateButtonActionPerformed(java.awt.event.ActionEvent evt) {
String username,password,random;
username = usernameTextField.getText();
password = passwordTextField.getText();
if (password.length() != 7){
}
}
答案 3 :(得分:1)
原始数据类型int没有方法length(),其包装器类也没有这样的方法。
您可以在将其解析为整数之前检查其长度:
int username, password, random;
String userName = usernameTextField.getText();
String pass = passwordTextField.getText();
if (userName.length() != 7) {
// do something
}
if (pass.length() != 7) {
// do something
}
username = Integer.parseInt(userName);
password = Integer.parseInt(pass);
希望这会有所帮助。祝你好运。