感谢您查看我的问题和您的有用建议。这个简单的程序我正在使用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}