我无法将字符串(生日)转换为整数(年龄)。我希望有人输入他们的出生年份,并让程序做一个简单的减法计算出他们的年龄。我是编程新手,所以我一直在四处寻找,大多数地方都告诉我同样的事情。
Integer.parseInt(birthyear);
然而,在做了这些之后,当我尝试做数学时。。。
int age = year-birthyear;
我得到了标题中的错误。
public class WordGameScanner
{
public static void main(String[] argus)
{
String name;
String home;
String birthyear;
String course;
String reason;
String feedback;
int year = 2013;
Scanner input = new Scanner(System.in);
System.out.print("What is your name: ");
name = input.nextLine();
System.out.print("Where are you from: ");
home = input.nextLine();
System.out.print("What year were you born: ");
birthyear = input.nextLine();
Integer.parseInt(birthyear);
System.out.print("What are you studying: ");
course = input.nextLine();
System.out.print("Why are you studying " + course + ": ");
reason = input.nextLine();
System.out.print("How is " + course + " coming along so far: ");
feedback = input.nextLine();
int age = year-birthyear;
System.out.println("There once was a person named " + name +
" who came all the way from " + home +
" to study for the " + course +
" degree at --------------.\n\n" + name +
" was born in " + birthyear + " and so will turn " + age +
" this year.");
System.out.println(name + " decided to study the unit ------------, because \"" +
reason + "\". So far, ----------- is turning out to be " +
feedback + ".");
}
}
很抱歉,如果这是在错误的地方,这只是我在这里的第二个帖子。我只是点击“提问”并按照指示进行操作
整数。parseInt
不会将生日
从字符串更改为int,它只是返回字符串所代表的int。您需要将这个返回值分配给另一个变量,并在减法中使用它。
Integer.parseInt(birthyear);
不会覆盖生日值,也不会将其类型从String更改为int
所以你必须这么做
int intbirthyear = Integer.parseInt(birthyear);
然后
int age = year-intbirthyear;
int age = year-Integer.parseInt(birthyear);
调用parseInt
并不会将变量String birthYear
重新定义为int
,它只会返回一个int
值,可以存储在另一个变量中(比如int birthYearInt=Integer.parseInt(birthYear))
)或在上述表达式中使用。
你可能还需要花一分钟考虑输入。
用户可以只输入最后两位数字(“83”而不是“1983”),因此您可以:
int birthYearInt = Integer.parseInt(birthYear);
if (birthYear.length() == 2) {
// One way to adjust 2-digit year to 1900.
// Problem: There might not be more users born in 1900 than born in 2000.
birthYearInt = birthYearInt + 1900;
}
int age = year = birthYearInt;
或者,您可以使用
java。文本NumberFormat
以正确处理输入中的逗号NumberFormat
是处理来自人类的数字的好方法,因为它处理的数字格式与计算机不同。
另一个问题是,这使用了中国的年龄编号系统,每个人的年龄在新年(农历,而不是公历)增加一岁。但这并不是全世界计算年龄的方式。例如,在美国和欧洲大部分地区,你的年龄在你出生的周年纪念日增加。
javabeans新手,如果这太简单了,请原谅我: 在编写javabean页面时得到此错误。代码基本上要求将7个值加在一起,然后将总数除以160。代码是: 我到底做错了什么?
我试图访问使用一维数组映射定义的二维矩阵的值,并希望将该特定索引值存储在一个变量中。 该矩阵包含整数值,利用二维矩阵到一维数组映射的概念,得到“二元运算符操作数类型错误+第一类INT[]和第二类INT”的错误。 我试图访问矩阵fill中的诊断值,即fill[i-1][j-1],并希望将其存储在变量D seq_2中。length是矩阵中列的大小。 代码是
二进制运算符“!=”的操作数类型不正确第一种类型:String第二种类型:int 问题是根据NetBeans的
当试图编译时,我得到了错误消息:二进制运算符的坏操作数类型 '| |' 第一种类型:int;第二种类型:int。 这是我写的代码,虽然还没有完成。 请你告诉我这是什么意思,我怎么能修复它?
二进制运算符"*"的操作数类型错误 我在编译过程中得到的错误是二进制运算符的坏操作数类型,表示:第一种类型:int第二种类型:int[],我只能使用这个逻辑。以下是我节目的一部分
我不知道如何修正我错误。错误状态 “DayCare.java:29:错误:二进制运算符”-“[numDaysString-1])的操作数类型不正确)第一类型:String第二类型:int”