不兼容的类型 - 在java中找到了java.lang.String但是期望的int

时间:2012-05-27 11:12:11

标签: java gregorian-calendar

显示从今天起,出生当天起100天,以及出生日期后10,000天的日期。我已经完成了所有这些,但我想更进一步,我希望用户能够输入从今天起他/她希望知道日期的天数(如果这有任何意义的话) ...)。以下是我正在处理的代码部分:

 public class calendarProjectTest
    {
    public static void main(String[] args)
    { GregorianCalendar cal = new GregorianCalendar(); //declare today's date
    GregorianCalendar myBirthday = new
    GregorianCalendar(1990, GregorianCalendar.JUNE, 9); //declare my birthday
    System.out.println("Please enter a number greater than 0:");
    Scanner keyboard = new Scanner(System.in);
    String number = keyboard.next();
    int value = number;
    cal.add(GregorianCalendar.DAY_OF_MONTH, number);

我正在使用Bluej它说,“不兼容的类型 - 找到了java.lang.String但是期望的int” 我不知所措。我不知道该怎么做。任何建议都会很棒。是的,我知道没有端括号。

4 个答案:

答案 0 :(得分:1)

使用此:

int value = Integer.parseInt(number);

答案 1 :(得分:1)

改变这个:

cal.add(GregorianCalendar.DAY_OF_MONTH, Integer.parseInt(number));

docs可以看出,add()方法需要两个参数int

答案 2 :(得分:1)

问题出在这里

String number = keyboard.next();
int value = number;

改为使用:

int value = keyboard.nextInt(); // you will get parsed int value
cal.add(GregorianCalendar.DAY_OF_MONTH, value);

答案 3 :(得分:0)

Keyboard.next(); 返回一个字符串,而不是一个整数。

so int value = number试图将字符串值赋给int类型。尝试改为: int value = Integer.parseInt(number);

想了解有关GregorianCalendarhttp://www.vogella.com/articles/JavaDateTimeAPI/article.html

的更多信息