1

を使用しようとするとエラーが発生します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");
    }

それは私が問題を抱えていると信じている私のコードのスニペットです。どんな助けでも素晴らしいでしょう。

4

3 に答える 3

1

month はゼロに初期化され、その後変更されないため、 strMonthtoを設定しても 0 に設定するだけで成功します。コードを見ると、 tomonthの値を設定しようとしているように見えます。これを行うには、次を置き換えます。monthstrMonth

strMonth = Integer.parseInt(month);

以下を使用します。

month = Integer.parseInt(strMonth);
于 2013-08-28T01:58:28.860 に答える
0

あなたのコードでは、文字列を期待する parseInt を使用しています。使用している月はすでに int です。

あなたがやろうとしているのは、intをStringに変換することです。通常の方法はInteger.toString(i)またはString.valueOf(i)です。

于 2013-08-28T01:55:34.530 に答える
0

String 値を int dataType に代入しようとしています。だからそれだけはあなたを許しません。

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

そしてInteger.parseInt()、文字列値を返します。タイプを String に変更するか、String を int に変換します

試す

strMonth = String.valueOf(month);
于 2013-08-28T01:52:57.700 に答える