2012-11-26 143 views
1

我目前正在为Java做一个任务,但我被卡住了。我必须从三个参数中进行出生日期:日,月和年,它们是数字= int。有了这个,我必须对有效日期进行一些检查。这部分我觉得是做了,但我会卡在下面:如何将int分配给String变量?

我想if语句来检查的日子,如果这一天是正确的,这个代码块应该运行低谷

if (dag >=1 && dag <=31) 
{ 
    datum = dag; 
} 

datum是一个字符串,因为我想得到这样的日期:DD-MM-YYY 而dag是一个Int。所以无论什么时候我试图编译这个,BlueJ在这个部分给出了一个错误,说“不兼容的类型”。我认为这是因为我尝试在字符串中放置一个Int。这有可能以任何方式,因为我不知道如何。

+4

'datum =“”+ dag; ' – Mysticial

回答

3

使用String.valueOf方法转换到intstring: -

int i = 32; 
String str = String.valueOf(i); 

当然并按照@Brian's answer的建议,以什么你应该在你的情况而做的。

+1

另一种选择是'Integer.toString(i)' –

3

不要让它成为一个字符串。不是。我想你应该

  1. 创建Date对象来代表您的日期(日/月/年合并)
  2. 使用SimpleDateFormat打印,在适当的格式

日期出这是正确的OO方法来做到这一点。否则,你最终会得到一堆不同的断开连接的变量,这些变量在它们的组合中表示一些对象类型,但是你不能以原子方式操作它们,调用它们的方法等等。把所有字符串都称为字符串打字(而不是强烈打字),是一种特别糟糕的代码味道!

在某个阶段,检查出Joda-Time以获得比上面建议的更好的日期/时间API。然而,现在我怀疑你的碟子上已经够多了,而没有下载多余的罐子。

+0

+1为了避免“字符串输入” – NullUserException