我在文本文件中有一个列表,它在名称和年龄之间交替显示。有9个名字和9个年龄。
我需要我的程序才能显示
人(此处插入名称)的年龄最高:(此处插入年龄)。
到目前为止,这是我的代码:
public class Names
{
public static void main(String[] args) throws Exception
{
// get textfile
Scanner input = new Scanner( new File("names_and_ages.txt") );
final String[] names= new String[9];
final int[] ages= new int[9];
int counter = 0;
while (input.hasNext()) //while not end-of-file
{
names[counter]=input.next();
ages[counter]=Integer.parseInt(input.next());
counter++;
}
highestAge(names, ages);
input.close();
}//end of main
public static void highestAge (String[] name, int[] age)
{
String name;
int count = 0;
int oldest = highestAge[count];
for ( int number: highestAge)
{
if (number > oldest)
{
oldest = number;
}
}
System.out.print("Person " + name + " has the highest age: " + oldest );
}//end of Size method
}//end of class
一切都编译我只是看不到让名字与年龄相匹配。帮助
答案 0 :(得分:1)
如果你创建了一个Person类,你可以省去管理两个数组的麻烦。
这将是你的Person类:
class Person {
String name;
int age;
}
答案 1 :(得分:1)
public static void highestAge(String[] names, int[] ages)
{
//SET SENSIBLE DEFAULTS TO oldest AND index
int index = 0;
int oldest = ages[0];
//Looping based on index
for (int i = 0; i < ages.length; i++)
{
if (ages[i] > oldest)
{
index = i;
oldest = ages[i];
}
}
System.out.print("Person " + names[index] + " has the highest age: " + ages[index] );
}//end of Size method
答案 2 :(得分:0)
你离我不远。您需要维护一个最老的“索引”,然后您可以使用它来引用两个数组。
public static void highestAge (String[] names, int[] ages)
{
String name
int oldest = 0;
int oldestIndex = -1;
for (int index = 0; index < ages.length; index++)
{
if (ages[index] > oldest)
{
oldest = number;
oldestIndex = index;
}
}
System.out.print("Person " + names[oldestIndex] + " has the highest age: " + oldest );
}//end of Size method
另外,我不知道你的例子是如何编译的,我没有看到数组highestAge
在哪里声明:P
就个人而言,我会创建一个Person
类,其名称和年龄为字段......
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
然后我会在循环的每次迭代中创建一个新的Person
并将它们添加到一组人(Person[] people = new Person[...]
)中(实际上,我会使用{{1}的实现但那就是我)
你突然为你开辟了很多创造力。
您可以提供java.util.list
方法来将人们进行比较。
isOlderThen(Person person)
您实际上只是根据每个人的年龄对数组进行排序,使用Arrays.sort
和Comparator
答案 3 :(得分:0)
1)创建一个类
class person
{
String name;
int age;
}
2)只创建一个数组:Person []人
3)重写方法highestAge
Person getOldest( Person[] persons )
{
Person oldest = null;
for( Person person : persons )
{
if( oldest == null || person.age > oldest.age )
{
oldest = person;
}
}
return oldest;
}