JAVA-无法解决void / String问题

时间:2015-09-19 03:04:58

标签: string return void

感谢您查看我的问题和您的有用建议。这个简单的程序我正在使用Getter Setter编写,我的意图是当用户输入END时它将停止并打印输入。

问题:当我运行此程序时,它会要求学生姓名两次,并接受最后一次输入。实施例

输入(sp)名称: NN 输入(sp)名称: 纳米 输入(sp)ID: 11 输入(sp)名称: 结束 {纳米= 11}

我的想法:我假设这部分代码导致了这个

public String takeSPNAME(){

    Scanner userInput = new Scanner(System.in); 
    System.out.println("Enter (sp)a name: ");
     return this.setSpName(userInput.next());
}

但是如果我使用VOID而不是String,那么我将无法使用.match选项[while(!(this.takeSPNAME()。matches(“END”)))] void是原始类型。

有人能指出我可以做些什么吗?

代码:

import java.util。*; 公共类StudentProfile {

public String spName;
public int spID;

public HashMap<String, Integer> hlist= new HashMap<String, Integer>();

public String getSpName() {
    return spName;
}

public String setSpName(String spName) {
    return this.spName=spName ;
}
public int getSpID() {
    return spID;
}
public void setSpID(int spID) {
    this.spID = spID;
}

public void takeSPNAME(){

    Scanner userInput = new Scanner(System.in); 
    System.out.println("Enter (sp)a name: ");
      this.setSpName(userInput.next());
}

public void takeSPID(){
    Scanner userInput = new Scanner(System.in); 
    System.out.println("Enter (sp)ID: ");
    this.setSpID(userInput.nextInt());

}

public void printINFO(){

    while(!(this.takeSPNAME().matches("END"))){

        this.takeSPNAME();
        this.takeSPID();
        hlist.put(spName, spID);
    }
    System.out.println(hlist);
}

}

由于我没有看到任何回应,我试图自己解决这个问题。工作几天后,我改变了代码并摆脱了Getter Setter。这是新代码

import java.util。*;

public class StudentProfile {

public String spName;
public int spID;


public HashMap<String, Integer> hList= new HashMap<String, Integer>();

public String takespName(){
    Scanner userInput = new Scanner(System.in);
    System.out.println("Enter (sp) student name: ");
    return spName= userInput.next();

}
public void printSPinfo1(){

    String myname= this.takespName();


    if((spName).matches("END")){

        System.out.println("EXIT");
    }
    while(!(spName).matches("END")){

        Scanner userInput = new Scanner(System.in);
        System.out.println("Enter (sp) student id: ");
        spID=userInput.nextInt();
        this.takespName();
        hList.put(spName, spID);
    }
    System.out.println(hList);
}

}

输出:(就像我想要的那样)

输入(sp)学生ID: 15 输入(sp)学生姓名: 结束 {bob = 14,END = 15,aron = 11}

0 个答案:

没有答案