我正在创建一个while循环,要求输入一个名称和一个id,并将其重复添加到ArrayList,直到被告知我的计算机科学课程停止。我怎么能每次都改变新的“TeamMember”的名字?此外,这甚至会工作,如果不是为什么,我怎么能让它工作? 这是我的代码(主要):
import java.util.ArrayList;
import java.util.Scanner;
public class TeamClassMain {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ArrayList <TeamMember> list = new ArrayList();
String name;
String id;
String ArrayVar;
int number = 0;
int stop = 0;
while (stop == 0) {
System.out.println("Enter the next name:");
name = scan.nextLine();
name = name.toLowerCase();
if (name == "stop") {
stop = 1;
}
System.out.println("Enter the next ID:");
id = scan.nextLine();
ArrayVar = "member " + number;
TeamMember member1 = new TeamMember(name, id);
number++;
}
}
}
这不是必需的,但知道TeamMember是什么可能很有趣,所以这是我的TeamMember类:
import java.lang.*;
public class TeamMember {
String fullName;
String idString;
TeamMember(String name, String id) {
name = name.toUpperCase();
char character;
String string;
int num;
for (int i = 0; i < name.length() - 1; i++) {
if (i == 0) {
character = name.charAt(0);
string = "" + character;
string = string.toUpperCase();
character = string.charAt(0);
i = character;
}
if (name.charAt(i) == ' ') {
character = name.charAt(i + 1);
string = "" + character;
string = string.toUpperCase();
character = string.charAt(i + 1);
name.substring(i + 1, character);
}
}
fullName = name;
idString.valueOf(id);
}
public String toString() {
return fullName;
}
int compareTo(TeamMember other) {
return idString.compareTo(other.idString);
}
}
答案 0 :(得分:0)
您需要将TeamMember添加到ArrayList
TeamMember member1 = new TeamMember(name, id);
list.add(member1);//add to list
你应该在停止之后打破while循环停止不会添加到列表中 并使用equal来比较字符串
if (name.equals("stop")) {
stop = 1;
break;
}
答案 1 :(得分:0)
步骤1 - 不要用锤子来驱动螺丝。
特别,
注意输入数据:您要求用户输入名称和ID之间的映射值。
看起来名称是键,id是值。
将地图“内容”存储在Map
。
第2步 - TeamMember
类提供的值约为0。只需使用名称和ID之间的映射。
在较少的玩具问题中,TeamMember
会在名称和ID之间做更多的映射。
在这种情况下,
确定哪个是适当的密钥(ID或名称),并在每次插入new
时分配(使用TeamMember
)新的Map
作为值。