我不知道这里出了什么问题。 代码片段
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
String s1=SpinnerObj.getSelectedItem().toString();
String n1=s1.substring(s1.indexOf("Rs")+2,s1.length()-1);
int ns1=Integer.parseInt(String.valueOf(n1));//Couldnt cast and throws Exception
Toast.makeText(getBaseContext(),""+ns1,Toast.LENGTH_LONG).show();
Intent i = new Intent(getBaseContext(),OrderPlaced.class);
startActivity(i);
}
catch (NumberFormatException nfe) {
Toast.makeText(getBaseContext(), "gg", Toast.LENGTH_LONG).show();
}
}});
这里我试图将从Spinner获取的字符串转换为整数以进行计算。
答案 0 :(得分:3)
IMO你正在使用不正确的第一个子串索引尝试下面的代码
String test = "Havells fan(Rs 900)";
String n1=test.substring(test.indexOf("Rs")+3,test.length()-1);\\ use +3 instead of +2
int ns1 = Integer.parseInt(String.valueOf(n1));
Toast.makeText(getBaseContext(),""+ns1,Toast.LENGTH_LONG).show();
答案 1 :(得分:0)
也许字符串有空格。
你应该使用n1.tirm()
答案 2 :(得分:0)
根据您在评论中提供的字符串:Havells fan(Rs 900)
,在计算数字的起始索引时,在字符串中包含空格,因为s1.indexOf("Rs")+2
(此计算将给出14)将指向空格(指数14),而不是9(指数15)。对于建议的解决方案,您可以使用任何现有答案修剪字符串(n1.trim()
)或计算起始索引(s1.indexOf("Rs")+3
)时计算空格字符。