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