如何从输入中获取年份

时间:2015-12-20 11:04:28

标签: java

我收到了这段代码:

public class NewClass {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Input your place and date birth : ");
        String birth = in.nextLine();
    }
}

我将输入Malang, 22 May 1997。问题是如何将我的输入从字符串更改为int,以及如何只使用年份。所以我可以用于

if (2015 - year < 20 ) {
    System.out.println ("You are teen");
}

4 个答案:

答案 0 :(得分:0)

实际上,这取决于您输入的格式。如果格式将是硬编码的(<name><month> <day> <year>),您可以按空格符号拆分给定的字符串,并取最后一项并尝试将其转换为数。

答案 1 :(得分:0)

如果你将“输入”分成两部分会更好。 然后告诉用户以这种格式(月日,年)输入他/她的生日。逗号很重要,因为在逗号之后是一年。

int year = 0;
String place = "";
Scanner place_in = new Scanner(System.in);
System.out.print("Enter place of Birth : ");
place = place_in.nextLine();
String bday = "";
Scanner bday_in = new Scanner(System.in);
System.out.print("Enter Birthday (Month Day,Year): ");
bday = bday_in.nextLine();

for(int i=0;i<bday.length();i++) {
    if(bday.charAt(i)==','){
      year = Integer.parseInt(Character.toString(bday.charAt(i+2))+Character.toString(bday.charAt(i+3))+Character.toString(bday.charAt(i+4))+Character.toString(bday.charAt(i+5)));
    }
}

答案 2 :(得分:0)

此代码将执行您想要的操作。首先,它接受输入Malang, 22 May 1997并将其在,处拆分为数组。然后它获取数组的第二个索引并将其合并为一个日期。它将年份保存在一个字符串中。下一个函数获取当前年份并减去您从当前年份输入的年份。最后,它将其与20进行比较,如果You are teen小于20,则打印出i

import java.util.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class YearExtract
{
    String originalString;
    String dateOfBirth;
    String yearOfBirth;
    String currentYear;

    public void setDateOfBirth()
    {
        Scanner in = new Scanner(System.in);
        System.out.println("Input your place and date birth : ");
        String originalString = in.nextLine();

        String[] splitString = originalString.split(",");
        dateOfBirth = splitString[1];
        try
        {
            SimpleDateFormat format = new SimpleDateFormat("dd MMMMM yyyy");
            Date date = format.parse(dateOfBirth);
            SimpleDateFormat format2 = new SimpleDateFormat("yyyy");
            yearOfBirth = format2.format(date);
            System.out.println(yearOfBirth);
        }
        catch(Exception e)
        {

        }
    }

    public void areYouTeenager()
    {
        Date now = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy");
        currentYear = format.format(now);

        int i = Integer.parseInt(currentYear) - Integer.parseInt(yearOfBirth);

        if(i<20)
        {
            System.out.println ("You are teen");
        }
    }

    public static void main(String[] args)
    {
        YearExtract yE = new YearExtract();
        yE.setDateOfBirth();
        yE.areYouTeenager();
    }
}

答案 3 :(得分:0)

如果String输入的格式保持不变,那么下面将给出year part作为int值,

String[] strArray=birth.split(",");
int year = Integer.valueOf(strArray[1].trim().split(" ")[2]).intValue();

如果更改输入字符串格式,则此代码将失败。