我正在尝试从数字列表中获取第5,第6和第7位数字。
E.g。我希望将年份从变量dateofbirth
中删除,并将其另存为名为dob
的单独变量,作为int
。
这就是我所拥有的:
int dateofbirth = 17031989
String s = Integer.toString(dateofbirth);
int dob = s.charAt(5);
我需要在s.charAt
后的括号中放一个连续几位的数字?
答案 0 :(得分:6)
无需字符串转换:
int dateofbirth = 17031989;
System.out.println(dateofbirth%10000); //1989
如果你确实想把它作为一个字符串,那么substring()方法就是你的朋友。您还需要使用Integer.parseInt()
将字符串转换回整数。将字符值作为整数将为您提供该字符的ASCII值,而不是表示该字符的整数!
答案 1 :(得分:2)
您想使用String.substring(未经测试):
int dateofbirth = 17031989;
String s = Integer.toString(dateofbirth);
String year = s.substring(4, 8);
int yearInt = Integer.parseInt(year);
答案 2 :(得分:1)
s.substring(5)
将为您提供从索引5
开始的所有内容。您还可以给出第二个参数来指示您希望子字符串结束的位置。
答案 3 :(得分:1)
如果您正在处理日期,可以使用SimpleDateFormat和Calendar来提取年份:
SimpleDateFormat formatter = new SimpleDateFormat("ddMMyyyy");
Calendar cal = Calendar.getInstance();
cal.setTime(formatter.parse(Integer.toString(dateofbirth)));
int year = cal.get(Calendar.YEAR);
答案 4 :(得分:0)
String s = String.valueOf(dateofbirth);
int yourInt = Integer.parseInt(s.substring(startIndex,length))
答案 5 :(得分:0)
查看String.substring()!
http://download.oracle.com/javase/6/docs/api/java/lang/String.html#substring%28int%29
答案 6 :(得分:0)
这种方法不会有多种原因:
如果要从此字符串中提取1989,则应使用substring,然后使用Integer.valueOf()
将此字符串转换为Integer。答案 7 :(得分:0)
Integer.parseInt(s.subString(4))
答案 8 :(得分:-1)
来自JRE文档:getChars