2015-09-13 40 views
0

有沒有什麼辦法將字符串與id(例如:String id = "R.id.id")轉換爲int?android studio如何將字符串與id轉換爲int?

我已經試過這樣:

String st = "R.id.id"; 
int id = Integer.parseInt(st); 

但沒有奏效。

感謝您的幫助!

+1

我想你想要的是'Resources.getIdentifier()',但其不清楚你的問題 –

回答

0

你在問什麼是完全錯誤的。

"R.id.id"String表示不能轉換爲 int。

它總是會拋出一個NumberFormatException

檢查javadoc

將字符串參數作爲有符號的十進制整數。字符串中的字符必須全部爲十進制數字,但第一個字符可能是ASCII減號' - '('\ u002D')以指示負值或ASCII加號'+'('\ u002B')。表示一個正值。返回結果整數值,就像參數和基數10作爲parseInt(java.lang.String,int)方法的參數一樣。

如果您strings.xml使用相同id資源是一個整數,你必須使用somenthing不同:

<resources> 
    <string name="mystring">12</string> 
</resources> 

使用此代碼檢索字符串:

String string = getString(R.string.mystring); 

try{ 
    int number = Integer.parseInt(string); 
} catch (NumberFormatException nfe){ 
    //..... 
} 
0

由非數字值組成的String不能轉換爲int或轉換爲任何數字數據類型。但是,如果字符串保存數字值,則可以將其轉換爲int或其他數字數據類型。而對於它的原因是每一個programming language有其syntax定義,如果你想通過指定字符值你可以做

int variableName = 'a'; 
or 
int variableName = 'b'; 

等。這是Java 'a'空間數字分配等於97 & 'b'等於98

或者,如果一個字符串持有數值,你可以將它轉換爲

<resources> 
    <string name="stringVal">500</string> 
</resources> 

得到這樣

String string = getString(R.string.stringVal); 


    int anyName= Integer.parseInt(string);