在Java中使用字符串变量表示数学函数

时间:2015-01-26 04:51:38

标签: java string

我是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,其中类似的东西会起作用。

如果需要,我可以发布完整的程序,但除了本节以外,没有任何相关内容。

4 个答案:

答案 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);