首先,我是Android开发的初学者。 我想知道当我尝试将ASCII代码转换为Character时,为什么我的应用程序崩溃。
private String crip(String str, String psw) {
int code = 0;
String full_word="";
for (int i= 0; i <= str.length(); i++) {
code=(int)str.charAt(i); // Crashes here (I guess)
full_word+=code;
}
return full_word;
}
on onClick事件:
crip.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (!psw.getText().toString().isEmpty() && !str.getText().toString().isEmpty()) {
out.setText(crip(str.getText().toString(), psw.getText().toString()));
}
}
});
有什么问题?
答案 0 :(得分:3)
记住java中的所有内容都是零索引的。所以一个包含3个字符的字符串的字符为0,1和2
然而,您的代码在0,1,2 &amp;处理时访问字符(假设str长度为3)。 3 强>
for (int i= 0; i <= str.length(); i++) {
code=(int)str.charAt(i);
.....
所以你应该提前结束你的循环1或
for (int i= 0; i < str.length(); i++) {
code=(int)str.charAt(i);
.....