2015-09-13 43 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);