我收到了这段代码:
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");
}
答案 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();
如果更改输入字符串格式,则此代码将失败。