簡體   English   中英

無法將UserId解析為類型錯誤Java

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

我對諸如Java上的public void之類的方法不熟悉。

如果有人輸入名字為:John,姓為:Smith。 我的程序應將UserID顯示為jsmith。 當我將其全部放入main方法中時,一切工作正常。 我希望所有這些都在同一個類(UserID)上,我還收到一條錯誤消息,提示在其中顯示插入賦值運算符表達式:

process.userID;

這是代碼:

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()方法。

這行:

userID process = new UserID();

應該:

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

接着:

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();

}

更新了您的代碼。 有用。 正如Daniel指出的,第一個問題是與UserID有關。 以后,姓氏可以少於5位,因此可以解決。 由於您使用的是名字和姓氏,因此您無需在方法中傳遞userId。

試試看,代碼有一些邏輯和Java命名約定錯誤;

我已經分別編輯了您的代碼。

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();
    }
}

隨便問什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM