我在尝试使用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");
}
这是我的代码片段,我相信我遇到了麻烦。任何帮助都会很棒。
答案 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)
。