在scan-Java中最多输入10个有效名称
我需要要求用户输入最多10个有效名称。在我的代码中,我必须有一个包含所有全名的数组。在该数组中,全名是一个名称分隔的数组。要使每个全名有效,必须至少有两个名称和至少4个字符。如果用户介绍了5个有效的全名,则可以用数字“fim”结束该计划。最大值为10个有效全名,如果用户达到10个有效全名,则程序应结束。这些代码是不正确的,因为当它达到10个有效全名时,或者如果用户数字在5个或更多有效全名后结束,它不会结束在scan-Java中最多输入10个有效名称,java,arrays,Java,Arrays,我需要要求用户输入最多10个有效名称。在我的代码中,我必须有一个包含所有全名的数组。在该数组中,全名是一个名称分隔的数组。要使每个全名有效,必须至少有两个名称和至少4个字符。如果用户介绍了5个有效的全名,则可以用数字“fim”结束该计划。最大值为10个有效全名,如果用户达到10个有效全名,则程序应结束。这些代码是不正确的,因为当它达到10个有效全名时,或者如果用户数字在5个或更多有效全名后结束,它不会结束 public static void main(String[] args) {
public static void main(String[] args) {
Scanner keyboard = new Scanner (System.in);
System.out.println("Enter up to 10 full names with up to 120 characters and at least two names with at least 4 characters: ");
String[] fullName= new String[10];
String[] separatedName;
String name;
int i = 0;
do {
name = keyboard.nextLine();
fullName[i]=name;
i++;
separatedName = name.split(" ");
//System.out.println(Arrays.toString(separatedName));
int l = 0;
for(int n = 0; n < separatedName .length; n++){
if(separatedName [n].length() >= 4 ) {
l++;
}
}
if(l >= 2 && name.length() <= 120 || name.equalsIgnoreCase("fim") ) {
//System.out.println("Valid name.");
}
else {System.out.println("'" +name+ "'" + " is an invalid name");
}
}
while(i<10);
keyboard.close();
}
publicstaticvoidmain(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入最多10个全名,最多120个字符,至少两个名称,至少4个字符:”);
字符串[]全名=新字符串[10];
字符串[]分隔名称;
字符串名;
int i=0;
做{
name=keyboard.nextLine();
全名[i]=姓名;
i++;
separatedName=name.split(“”);
//System.out.println(Arrays.toString(separatedName));
int l=0;
for(int n=0;n=4){
l++;
}
}
如果(l>=2&&name.length()仍然不确定要执行的操作。尝试此操作,这将解决您的问题
public static void main(String[] args) {
Scanner keyboard = new Scanner (System.in);
System.out.println("Enter up to 10 full names with up to 120 characters and at least two names with at least 4 characters: ");
String[] fullName= new String[10];
String[] separatedName;
String name;
int i = 0;
int validCount=0;
do {
name = keyboard.nextLine();
fullName[i]=name;
i++;
separatedName = name.split(" ");
//System.out.println(Arrays.toString(separatedName));
int l = 0;
for(int n = 0; n < separatedName .length; n++){
if(separatedName [n].length() >= 4 ) {
l++;
}
}
if(l >= 2 && name.length() <= 120 ) {
validCount++;
//System.out.println("Valid name.");
}
else {System.out.println("'" +name+ "'" + " is an invalid name");
}
if(validCount>=5 || name.equalsIgnoreCase("fim")) {
break;
}
}
while(i<10);
keyboard.close();
}
publicstaticvoidmain(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入最多10个全名,最多120个字符,至少两个名称,至少4个字符:”);
字符串[]全名=新字符串[10];
字符串[]分隔名称;
字符串名;
int i=0;
int validCount=0;
做{
name=keyboard.nextLine();
全名[i]=姓名;
i++;
separatedName=name.split(“”);
//System.out.println(Arrays.toString(separatedName));
int l=0;
for(int n=0;n=4){
l++;
}
}
如果(l>=2&&name.length()=5 | | name.equalsIgnoreCase(“fim”)){
打破
}
}
while(I)您的问题/问题是什么?我添加了为什么它不起作用,并且如果(l>=2&&name.length(),则fullName[]的元素只能根据条件具有有效的名称。您可以显示输出并解释其错误原因。有时解释问题会修复它。可能的重复