在java中打印特定用户输入

时间:2015-09-30 22:19:12

标签: java string input integer compare

我必须设计一个程序,它以下列形式获得3个用户输入:

Name1   (any number of spaces)  age1
Name2   (any number of spaces)  age3
Name3   (any number of spaces)  age3

然后打印具有最高年龄的行(假设Name3 age3具有最高年龄我打印他的行)。

我的代码:

import java.util.*;
public class RankAge{
    public static void main(String[] args){
    System.out.println("Enter 3 different names and the age of each person respectively:");
    Scanner sc = new Scanner(System.in);
    String n1 = sc.nextLine();
    String n2 = sc.nextLine();
    String n3 = sc.nextLine();

    }
}

我知道如何扫描用户输入,但我不知道如何对获取的字符串中的数字进行比较以打印特定的数字(因为可能有任何数量的空格似乎更多对我来说很复杂。)

3 个答案:

答案 0 :(得分:2)

您可以使用split来获取此人的年龄:

String age = "Jon       57".split("\\s+")[1]; // contains "57"

然后,您可以使用Integer.parseInt(age)作为一个数字来获取此人的年龄。

<小时/> 如果您需要允许用户输入带空格的名称,您可以使用方括号([])调整数字。例如,[2]将要求用户输入名字和姓氏。

答案 1 :(得分:2)

使用frenchDolphin的建议进行管理。这是我使用的代码(它非常适合初学者):

import java.util.*;
public class RankAge{
    public static void main(String[] args){
    System.out.println("Enter 3 different names and the age of each person respectively:");
    Scanner sc = new Scanner(System.in);
    String n1 = sc.nextLine();
    String a1 = n1.split("\\s+")[1];
    String n2 = sc.nextLine();
    String a2 = n2.split("\\s+")[1];
    String n3 = sc.nextLine();
    String a3 = n3.split("\\s+")[1];

    if(Integer.parseInt(a1) > Integer.parseInt(a2)){
    } if(Integer.parseInt(a1) > Integer.parseInt(a3)){
            System.out.println(n1);
    }else if(Integer.parseInt(a2) > Integer.parseInt(a3)){
        System.out.println(n2);
    }else{
        System.out.println(n3);
    }
    }
}

答案 2 :(得分:0)

+1因为起初看起来很简单,但是当我开始实施时,复杂性开始显现。以下是您的问题的完整解决方案,

import java.util.*;

public class RankAge {

   public static void main(String s[]){
        System.out.println("Enter 3 different names and the age of each person respectively:");
        Scanner sc = new Scanner(System.in);
        String n[] = new String[3];
        for(int i=0;i<3;i++){
            n[i] = sc.nextLine();
        }

        int age[] = new int[3];

        age[0] = Integer.parseInt(n[0].split("\\s+")[1]);
        age[1] = Integer.parseInt(n[1].split("\\s+")[1]);
        age[2] = Integer.parseInt(n[2].split("\\s+")[1]);
        int ageTemp[] = age;
        for(int i=0;i<age.length;i++){
            for(int j=i+1;j<age.length;j++){
                int tempAge = 0;
                String tempN = "";
                if(age[i]<ageTemp[j]){
                    tempAge = age[i];
                    tempN = n[i];
                    age[i] = age[j];
                    n[i] = n[j];
                    age[j] = tempAge;
                    n[j] = tempN;
                }
            }
        }

        for(int i=0;i<3;i++){
            System.out.println(n[i]);
        }

   }

}