java中这样写year1=Integer.parseInt(i.subString(0,4));有错吗?

我是想:输入一个日期yyyymmdd,然后截取前四位为YEAR,mm为月份,dd为号数。这种思想行的通不?谢谢!!
我是那样写的!可编译的时候总是提醒“找不到符号”
符号:方法subString(int,int)
位置:类java.lang.String
year=Integer.parseInt(i.subString(0,4));
那个点总是出错。。。∧

我i是String

substring 方法将返回一个包含从原始对象中获得的子字符串的 String 对象。
substring 方法使用 start 和 end 两者的较小值作为子字符串的起始点。例如, strvar.substring(0, 3) 和 strvar.substring(3, 0) 将返回相同的子字符串。

唯一的例外是对负参数的处理。如果第一个参数小于 0,则将作为 0 来处理。而如果第二个参数是负数,则将设置为第一个参数的值。

该子字符串的长度等于 start 和 end 差的绝对值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的长度是 3。

最后,start 和 end 可以是字符串。在这种情况下,如果可能这些字符串将被强制转换为整数。如果不可能,参数的值将作为 0 进行处理。

下面的示例演示了 substring 方法的用法:

function SubstringDemo()
{
var s, ss;
var s = "The quick brown fox jumped over the lazy yellow dog.";
ss = s.substring(16, 19);
return(ss);
}
你的写法有点不对,把字符串转换为int类型 赋给YEAR没什么意义
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-11
注意输入一定要输入8位只包含数字字符的字符串,如果带有非数字字符,会抛出NumberFormatException

String strDate="20080611"
int year=Integer.parseInt(strDate.substring(0,4));
int month=Integer.parseInt(strDate.substring(4,6));
int day=Integer.parseInt(strDate.substring(6)); //或substring(6,8);
第2个回答  2008-06-11
可以这么写,但是要保证 变量 i 必须是数值类型,且是整数,前4位不是浮点数!
第3个回答  2008-06-12
year=Integer.parseInt(i.substring(0,4));

substring,非subString
第4个回答  2008-06-18
--

---

--
建议分开做