将ASCII代码转换为字符不起作用

时间:2013-12-05 13:19:19

标签: java android eclipse ascii

首先,我是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()));
        }

    }
});

有什么问题?

1 个答案:

答案 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); 
        .....