我试图从数字列表中获得第5,第6和第7位数字。如何从字符串中获取多个字符?
例如我想从变量dateofbirth
中获取年份,并将其另存为名为dob
的单独变量,作为int
。
以下是我有:
int dateofbirth = 17031989
String s = Integer.toString(dateofbirth);
int dob = s.charAt(5);
我将不得不把括号s.charAt
后能得到连续几个数字?
我试图从数字列表中获得第5,第6和第7位数字。如何从字符串中获取多个字符?
例如我想从变量dateofbirth
中获取年份,并将其另存为名为dob
的单独变量,作为int
。
以下是我有:
int dateofbirth = 17031989
String s = Integer.toString(dateofbirth);
int dob = s.charAt(5);
我将不得不把括号s.charAt
后能得到连续几个数字?
无需字符串转换:
int dateofbirth = 17031989;
System.out.println(dateofbirth%10000); //1989
如果你确实想做到这一点作为一个字符串,那么substring()方法是你的朋友。您还需要使用Integer.parseInt()
将字符串转换回整数。将字符值作为整数将给出该字符的ASCII值,而不是表示该字符的整数!
很好用的mod运算符。 – mcfinnigan
完美的感谢一百万 –
你这样做:
String s = String.valueOf(dateofbirth);
int yourInt = Integer.parseInt(s.substring(startIndex,length))
退房String.substring()!
http://download.oracle.com/javase/6/docs/api/java/lang/String.html#substring%28int%29
这种做法不会有几个原因的工作:
如果你想从这个字符串,你应该使用字符串,然后用这个字符串转换成整数Integer.valueOf()
你要提取1989使用String.substring(未经测试):
int dateofbirth = 17031989;
String s = Integer.toString(dateofbirth);
String year = s.substring(4, 8);
int yearInt = Integer.parseInt(year);
s.substring(5)
会给你一切从指数5
开始。你也可以给第二个参数指明你想要子字符串结束的位置。
Integer.parseInt(s.subString(4))
如果你正在处理日期,你可以使用的SimpleDateFormat和日历年度拔出:
SimpleDateFormat formatter = new SimpleDateFormat("ddMMyyyy");
Calendar cal = Calendar.getInstance();
cal.setTime(formatter.parse(Integer.toString(dateofbirth)));
int year = cal.get(Calendar.YEAR);
只是一般的注意事项:储存出生日期作为你给出的形式的整数是错误的。将它存储为一个字符串,一个Date对象,从某个开始日期开始的几天,或者任何可以使用的东西。但是不要使用某个数字,它需要以特定的基数进行字符串格式化才能产生任何意义。 –