简体   繁体   English

无法将UserId解析为类型错误Java

[英]UserId cannot be resolved to a type error java

I am new to methods such as the public void stuff on Java. 我对诸如Java上的public void之类的方法不熟悉。

If someone enters First Name as: John and surname: Smith. 如果有人输入名字为:John,姓为:Smith。 My program should display the UserID as jsmith. 我的程序应将UserID显示为jsmith。 That all works fine when I put it all in the main method. 当我将其全部放入main方法中时,一切工作正常。 I want it all on the same class (UserID) I also get an error message saying Insert assignment operator expression where it says: 我希望所有这些都在同一个类(UserID)上,我还收到一条错误消息,提示在其中显示插入赋值运算符表达式:

process.userID;

Here's the code: 这是代码:

import java.util.Scanner;
public class UserID {

Scanner myScan = new Scanner (System.in);

char firstLetter;
String firstName;
String minCharacters;
String surname; 
String userID;

public void firstName () {
    System.out.print("Please enter your firstname: ");
    firstName = myScan.nextLine();
}

public void surname () {
    System.out.print("Please enter your surname: ");
    surname = myScan.nextLine();
}

public void userID (String userID) {
    firstLetter = firstName.charAt(0);
    minCharacters=surname.substring(0, 5);
    userID = firstLetter+minCharacters;
    System.out.print("User ID = " + userID.toLowerCase());
    System.out.println ("\nPlease keep a note of your User ID");

    myScan.close();
}

public static void main(String[] args) {
    String userID;
    userID process = new UserID();
    process.userID;

}

} }

除了丹尼尔·斯坦利(Daniel Stanley)的答案之外,您没有在主方法中或在从命令行获取输入的userId()方法中调用firstname()和surname()方法。

This line: 这行:

userID process = new UserID();

should be: 应该:

UserID process = new UserID(); //capital 'U'

and then: 接着:

process.userID("SomeString"); //add brackets
public void userID () {
firstLetter = firstName.charAt(0);

minCharacters=surname.length()>=5?surname.substring(0, 5):surname;
userID = firstLetter+minCharacters;
System.out.print("User ID = " + userID.toLowerCase());
System.out.println ("\nPlease keep a note of your User ID");

myScan.close();

} }

public static void main(String[] args) {
UserID process = new UserID();
process.firstName();
process.surname();
process.userID();

} }

Updated your code. 更新了您的代码。 It works. 有用。 First issue was with UserID as Daniel pointed. 正如Daniel指出的,第一个问题是与UserID有关。 Later, the surname can be less than 5 digit so it takes care of that. 以后,姓氏可以少于5位,因此可以解决。 since you are using firstname and surname then you do not need to pass userId in the method. 由于您使用的是名字和姓氏,因此您无需在方法中传递userId。

Try this, Code have some logical and Java naming convention errors; 试试看,代码有一些逻辑和Java命名约定错误;

I have edited you code respectively. 我已经分别编辑了您的代码。

public class UserID {
    Scanner myScan = new Scanner(System.in);
    char firstLetter;
    String firstName;
    String minCharacters;
    String surName;
    String userID;

    public void setFirstName() {
        System.out.print("Please enter your firstname: ");
        this.firstName = myScan.nextLine();
    }

    public void setSurName() {
        System.out.print("Please enter your surname: ");
        this.surName = myScan.nextLine();
    }

    public void generateUserID() {
        firstLetter = firstName.charAt(0);
        minCharacters = surName;
        userID = firstLetter + minCharacters;
        System.out.print("User ID = " + userID.toLowerCase());
        System.out.println("\nPlease keep a note of your User ID");

        myScan.close();
    }

    public static void main(String[] args) {
        String userID;
        UserID process = new UserID();
        process.setFirstName();
        process.setSurName();
        process.generateUserID();
    }
}

Feel free to ask anything. 随便问什么。

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

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