2011-09-27 90 views
1

我試圖從數字列表中獲得第5,第6和第7位數字。如何從字符串中獲取多個字符?

例如我想從變量dateofbirth中獲取年份,並將其另存爲名爲dob的單獨變量,作爲int

以下是我有:

int dateofbirth = 17031989 
String s = Integer.toString(dateofbirth); 
int dob = s.charAt(5); 

我將不得不把括號s.charAt後能得到連續幾個數字?

+1

只是一般的注意事項:儲存出生日期作爲你給出的形式的整數是錯誤的。將它存儲爲一個字符串,一個Date對象,從某個開始日期開始的幾天,或者任何可以使用的東西。但是不要使用某個數字,它需要以特定的基數進行字符串格式化才能產生任何意義。 –

回答

6

無需字符串轉換:

int dateofbirth = 17031989; 
System.out.println(dateofbirth%10000); //1989 

如果你確實想做到這一點作爲一個字符串,那麼substring()方法是你的朋友。您還需要使用Integer.parseInt()將字符串轉換回整數。將字符值作爲整數將給出該字符的ASCII值,而不是表示該字符的整數!

+2

很好用的mod運算符。 – mcfinnigan

+0

完美的感謝一百萬 –

0

你這樣做:

String s = String.valueOf(dateofbirth); 
int yourInt = Integer.parseInt(s.substring(startIndex,length)) 
0

這種做法不會有幾個原因的工作:

  1. s.charAt(5)會給你的第6個字符的ASCII碼(這是不是9)。
  2. 沒有方法來獲得幾個字符

如果你想從這個字符串,你應該使用字符串,然後用這個字符串轉換成整數Integer.valueOf()

2

你要提取1989使用String.substring(未經測試):

int dateofbirth = 17031989; 
String s = Integer.toString(dateofbirth); 
String year = s.substring(4, 8); 
int yearInt = Integer.parseInt(year); 
1

s.substring(5)會給你一切從指數5開始。你也可以給第二個參數指明你想要子字符串結束的位置。

-1

從JRE文件:getChars

+0

如何寫一個或兩個以上的句子呢? –

+0

因爲如果我能用四個詞回答一個問題,使用六個不是一個改進。海報可以問的其他東西,他可以在鏈接中找到。 – SJuan76

0
Integer.parseInt(s.subString(4)) 
1

如果你正在處理日期,你可以使用的SimpleDateFormat和日曆年度拔出:

SimpleDateFormat formatter = new SimpleDateFormat("ddMMyyyy"); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(formatter.parse(Integer.toString(dateofbirth))); 
int year = cal.get(Calendar.YEAR);