我是Java的新手,我正在研究一个问题,询问用户他们的生日,然后接受输入,从当前年份减去它(后端的手动输入),然后使用说做一些事情的数字。
对于第一个数学部分,我试图在Java数学函数中使用字符串变量,但没有成功。
目前,我的代码是(包括提示的一小部分,用于上下文):
// 2. a. Skip a line, then prompt the user for the year
// they were born.
// b. Calculate and print the age the user will be this year.
// c. Declare a constant for average life expectancy,
// set its value to 78.7.
// d. Print a message that tells the user the percentage
// of their expected life they've lived.
// Use the DecimalFormat class to format the percentage
//double age;
String year = JOptionPane.showInputDialog(null, "What year were you born?");
String age = 2015 - year;
我也尝试过最后一行"年龄= 2015-年;"
有什么方法可以让它进行编译? NetBeans继续为二元运算符拍摄一个糟糕的操作数类型 - ' - ' "错误
我的背景只来自C,其中类似的东西会起作用。
如果需要,我可以发布完整的程序,但除了本节以外,没有任何相关内容。
答案 0 :(得分:1)
你需要做
String age=String.valueOf(2015-Integer.valueOf(year));
' - '对你不起作用,因为你试图对2个字符串对象执行' - ',但与C
不同,java不支持运算符重载。
默认情况下,对于String对象,您只能对字符串连接使用“+”操作
答案 1 :(得分:1)
您可以使用parseInt()
函数首先将String
转换为int
,执行数学运算,然后将int
转换为{{1} }}
将String
转换为String
/ int
进行数学运算总是更安全,因为某些数学运算符用于float
中的特定操作,例如:{默认情况下,{1}}用于字符串连接。
代码:
String
您也可以在一行中执行此操作,
+
答案 2 :(得分:0)
您正在尝试从int中减去字符串。它不受支持。 在使用整数之前将年份转换为int。
int year = Integer.parseInt(JOptionPane.showInputDialog(null, "What year were you born?"));
答案 3 :(得分:0)
String year = JOptionPane.showInputDialog(null, "What year were you born?");
int dob = Integer.parseInt(year);
String age = Integer.toString(2015 - dob);