我正在尝试使此switch
语句起作用。
我询问用户的生日,他们将其格式设置为DD.MM.YYYY
。该if
语句确定他们是否使用“。” 分隔它或其他符号之一,例如“ /”,“”。其他符号可以正常工作,它们会输入switch
语句,因此,如果用户输入1993年7月15日,它将正常工作,月份变为7月。但是当他们输入1993年default case
7月15日时,它不是第七种情况。
我认为这与转义的“。”有关。
("\\.")
这可能正在改变它的价值。有什么办法解决吗?输入是我的扫描仪。
有任何问题请随时询问我(们)。
if(input.contains("\\."))
{
String[] tokens = input.split("\\.");
day = Integer.parseInt(tokens[0]);
intMonth = Integer.parseInt(tokens[1]);
year = Integer.parseInt(tokens[2]);
}
switch(intMonth)
{
case 1: month = "January";
break;
case 2: month = "Febuary";
break;
case 3: month = "March";
break;
case 4: month = "April";
break;
case 5: month = "May";
break;
case 6: month = "June";
break;
case 7: month = "July";
break;
case 8: month = "August";
break;
case 9: month = "September";
break;
case 10: month = "October";
break;
case 11: month = "November";
break;
case 12: month = "December";
break;
default: month = "not valid";
break;
}
问题是您对使用了正则表达式String.contains
。
根据方法文档,您需要提供一个CharSequence
到String.contains
,即。您必须写if (input.contains("."))
而不是if (input.contains("\\."))
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句