Java数组解析字符串和int

Java数组解析字符串和int,java,arrays,parsing,Java,Arrays,Parsing,我试图写一个程序,它有两个数组,都固定为10 程序应该要求用户输入名称(字符串)10次,并要求用户输入每个名称的年龄(整数)10次 直到数组已满(输入了10个姓名和年龄,或者用户输入了“完成”一词) 然后打印出每个成员以及最年轻和最年长成员的姓名和相关年龄 如何将数组限制为字符串类型的10项,而不是由用户决定(代码当前正在执行的操作) 有什么建议吗 谢谢 import java.util.Scanner; public class NameAge { public static vo

我试图写一个程序,它有两个数组,都固定为10

程序应该要求用户输入名称(字符串)10次,并要求用户输入每个名称的年龄(整数)10次

直到数组已满(输入了10个姓名和年龄,或者用户输入了“完成”一词)

然后打印出每个成员以及最年轻和最年长成员的姓名和相关年龄

如何将数组限制为字符串类型的10项,而不是由用户决定(代码当前正在执行的操作)

有什么建议吗

谢谢

import java.util.Scanner;

public class NameAge {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);    

        System.out.print("Enter number of elements to be sorted: ");
        String numElements = input.nextLine();

        String[] num = new String[Integer.parseInt(numElements)];

        for (int i = 0; i < Integer.parseInt(numElements); i++) {
            System.out.print("Enter name " + (i + 1) + ": ");
            num[i] = input.nextLine();
        }

        for(String element : num) {
            System.out.println(element);
        }
    }    
} 
import java.util.Scanner;
公共类名称{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入要排序的元素数:”);
字符串numElements=input.nextLine();
String[]num=新字符串[Integer.parseInt(numElements)];
for(int i=0;i
我正在使用一个
ArrayList
来获得列表的动态大小,这是字符串[]无法实现的。程序循环10次,然后停止,或者如果用户输入“完成”作为名称(使用
break;
)。我将数据保存为
,这使得关联数据变得简单

import javafx.util.Pair;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class NameAge {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        List<Pair<String, Integer>> names = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            System.out.print("Enter name " + (i + 1) + ": ");
            String line = input.nextLine();
            if (line.equals("done")) break;
            System.out.print("Enter age for user " + (i + 1)+ ": ");
            Integer age = Integer.parseInt(input.nextLine());
            names.add(new Pair<String, Integer>(line, age));
        }
        names.forEach(System.out::println);
    }
}
导入javafx.util.Pair;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.Scanner;
公共类名称{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
列表名称=新的ArrayList();
对于(int i=0;i<10;i++){
系统输出打印(“输入名称”+(i+1)+“:”;
String line=input.nextLine();
如果(行等于(“完成”)中断;
系统输出打印(“输入用户年龄”+(i+1)+“:”;
整数年龄=Integer.parseInt(input.nextLine());
名称。添加(新对(线、年龄));
}
name.forEach(System.out::println);
}
}

我主张使用while循环代替中断(因为我讨厌中断)

import java.util.Scanner;
公开课考试{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int numTried=1;
布尔停止=假;
字符串条目=”;
String[]num=新字符串[10];

而(numTried我假设
max\u age
min\u age
只有一个。我使用
class Person
组织
姓名和
年龄
信息

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class NameAge {
class Person{
    String name;
    int age;

    Person(String name,int age){
        this.name = name;
        this.age = age;
    }
}

private final int MAX_NUMS = 10;
private final String END_FLAG = "done";
private List<Person> personList = new LinkedList<Person>();

public void process(){
     Scanner scan = new Scanner(System.in);
     Person oldestPerson = new Person(null,Integer.MIN_VALUE);
     Person youngestPerson = new Person(null,Integer.MAX_VALUE);
     System.out.println("input name and age, split them by space");
     int number = 1;
     while(number<=MAX_NUMS){
         String curLine = scan.nextLine();
         if(curLine.toLowerCase().trim().equals(END_FLAG)){
             break;
         }
         else{
             String[] strs = curLine.split(" ");
             String name = strs[0];
             int age = Integer.valueOf(strs[1]);
             Person newPerson = new Person(name,age);
             personList.add(newPerson);
             if(oldestPerson.age<newPerson.age){
                 oldestPerson = newPerson;
             }
             if(youngestPerson.age>newPerson.age){
                 youngestPerson = newPerson;
             }
         }
     }
     scan.close();
     for(Person p :personList){
         System.out.println(p.name+"  "+p.age);
     }
     System.out.println("yougest Person:" + youngestPerson.name+" "+youngestPerson.age);
     System.out.println("oldest Person:" + oldestPerson.name+" "+oldestPerson.age);
}

  public static void main(String[] args) {
     NameAge na = new NameAge();
     na.process();
  }    
} 
import java.util.LinkedList;
导入java.util.List;
导入java.util.Scanner;
公共类名称{
班主任{
字符串名;
智力年龄;
Person(字符串名称,整数年龄){
this.name=名称;
这个。年龄=年龄;
}
}
私人最终整数最大值=10;
私有最终字符串END_FLAG=“完成”;
private List personList=新建LinkedList();
公共程序(){
扫描仪扫描=新扫描仪(System.in);
Person oldestPerson=新人(空,整数.MIN_值);
Person youngestPerson=新人员(空,整数.MAX_值);
System.out.println(“输入姓名和年龄,按空格分隔”);
整数=1;

while(number)必须使用
for
循环迭代10次,并每次提示用户输入姓名和年龄。如果用户选择退出,请使用
break
语句退出循环。iimport java.util.LinkedList; import java.util.List; import java.util.Scanner; public class NameAge { class Person{ String name; int age; Person(String name,int age){ this.name = name; this.age = age; } } private final int MAX_NUMS = 10; private final String END_FLAG = "done"; private List<Person> personList = new LinkedList<Person>(); public void process(){ Scanner scan = new Scanner(System.in); Person oldestPerson = new Person(null,Integer.MIN_VALUE); Person youngestPerson = new Person(null,Integer.MAX_VALUE); System.out.println("input name and age, split them by space"); int number = 1; while(number<=MAX_NUMS){ String curLine = scan.nextLine(); if(curLine.toLowerCase().trim().equals(END_FLAG)){ break; } else{ String[] strs = curLine.split(" "); String name = strs[0]; int age = Integer.valueOf(strs[1]); Person newPerson = new Person(name,age); personList.add(newPerson); if(oldestPerson.age<newPerson.age){ oldestPerson = newPerson; } if(youngestPerson.age>newPerson.age){ youngestPerson = newPerson; } } } scan.close(); for(Person p :personList){ System.out.println(p.name+" "+p.age); } System.out.println("yougest Person:" + youngestPerson.name+" "+youngestPerson.age); System.out.println("oldest Person:" + oldestPerson.name+" "+oldestPerson.age); } public static void main(String[] args) { NameAge na = new NameAge(); na.process(); } }