Integer.parseInt()错误

时间:2013-08-28 01:45:56

标签: java parseint

我在尝试使用Integer.parseInt()时遇到错误。它们没有为parseInt(int)和方法Integer.pasreInt(String)找到合适的方法。

import java.io.InputStream; 
import java.util.Scanner; 
import java.util.regex.Pattern; 

class bday1
{ 
public static void main(String[] args) 
{ 
    Scanner sc = new Scanner(System.in);
    int day;
    int month=0;
    int year;
    int whatDay;
    int howManyDays=0;
    int leapYear;
    final int JANYEAR = 1901;
    int[] dayMonth = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    boolean numberEntered=true;
    String strMonth;
    String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};

    System.out.print("What is your birthdate? "); 
    sc.useDelimiter(Pattern.compile("[-/.\\s]")); 
    day = sc.nextInt();
    strMonth = sc.next();
    year = sc.nextInt();

    if((strMonth.charAt(0) >='0') && (strMonth.charAt(0) <='9'))
    {
        numberEntered=true;
        System.out.println ("number entered");
    }

    if(numberEntered)
    {
        strMonth=Integer.parseInt(month);
    }

    else
    {
        System.out.println ("string entered");
    }

这是我的代码片段,我相信我遇到了麻烦。任何帮助都会很棒。

3 个答案:

答案 0 :(得分:1)

由于月份初始化为零,之后不会更改,因此将strMonth设置为month只会成功将其设置为0.根据代码的外观,您似乎正在尝试将month的值设置为strMonth。为此,请替换:

strMonth = Integer.parseInt(month);

以下内容:

month = Integer.parseInt(strMonth);

答案 1 :(得分:0)

您正在尝试将String值分配给int dataType。所以只有它不会允许你。

strMonth= Integer.parseInt(month); // variable month and strMonth is int dataType

然后Integer.parseInt()将返回String值。将类型更改为String或将String转换为int

尝试

strMonth = String.valueOf(month);

答案 2 :(得分:0)

在您的代码中,您使用的是需要String的parseInt。您正在使用的月份已经是int。

您要做的是将int转换为String。 通常的方式是Integer.toString(i)String.valueOf(i)

相关问题