我試圖從數字列表中獲得第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對象,從某個開始日期開始的幾天,或者任何可以使用的東西。但是不要使用某個數字,它需要以特定的基數進行字符串格式化才能產生任何意義。 –