首页 > 解决方案 > 如何在 Java 中使用拆分字符串和数组获取最年长的人的姓名

问题描述

我一直盯着这个问题太久了。这是来自https://java-programming.mooc.fi/part-3/4-using-strings的练习,我必须得到最年长的人的名字通过拆分字符串并找到年龄最大的名称。

> Sample Input: Johnny, 5
>               Rose, 19
>               Sam, 10

所需输出:玫瑰

任何帮助将不胜感激。谢谢!

import java.util.Scanner;

public class NameOfTheOldest {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String name = "";

        while (true) {

            String input = scanner.nextLine();

            if (input.equals("")) {

                break;

            }

            String[] pieces = input.split(",");

            int age = Integer.valueOf(pieces[1]);

            int oldest = 0;

            if (age > oldest) {

                name = pieces[0];

                oldest = age;

            }
        }

        System.out.println("Name of the oldest: " + name);
    }
}

标签: javaarrayssplit

解决方案


您将变量声明放置oldest在循环内部,因此每次读取新的输入行时,oldest都会将其设置回 0,如果您将其移到 while 循环之外,您的代码应该可以正常工作。


推荐阅读