Java 字符串迭代和构建新的编码字符串不会';行不通

Java 字符串迭代和构建新的编码字符串不会';行不通,java,android,Java,Android,我试图将一个字符串转换成另一个字符串,就像加密一样。基本上,如果我的初始字符串是“ABC”,结果将类似于“pb7gxr9b3ptwhvtc92”,它由3个代码组成,每个代码分别对应于3个初始字符。初始字符串取自Android EditText,当您按下某个按钮时会发生转换,然后,输出显示在TextView中。代码如下: eB.setOnClickListener(new View.OnClickListener() { @Override pub

我试图将一个字符串转换成另一个字符串,就像加密一样。基本上,如果我的初始字符串是“ABC”,结果将类似于“pb7gxr9b3ptwhvtc92”,它由3个代码组成,每个代码分别对应于3个初始字符。初始字符串取自Android EditText,当您按下某个按钮时会发生转换,然后,输出显示在TextView中。代码如下:

 eB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String textInput = editText1.getText().toString().toLowerCase();
                String str;
                StringBuilder output = new StringBuilder();
                for (int i = 0; i < textInput.length(); i++) {
                        switch (textInput.charAt(i)) {
                            case ' ':
                                output.append("wus65s");
                            case 'a':
                                output.append("pb7gxr");
                            case 'b':
                                output.append("9b3ptw");
                            case 'c':
                                output.append("hvtc92");
                            ...........................
                            ...........................
                            case 'z':
                                output.append("acxdox");
                        }
                }
                str = output.toString();
                oE.setText(str);
            }
        });
eB.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
String textInput=editText1.getText().toString().toLowerCase();
字符串str;
StringBuilder输出=新的StringBuilder();
对于(int i=0;i
输出完全错误(我发布了下面的图片),看起来我引入了一个完整的文本,而不是3个字符:


有人能告诉我代码不起作用的原因吗?谢谢大家!

添加一个
中断对您正在处理的每个
案例的声明。否则,匹配的
案例下的剩余
案例也将运行。这就是为什么生成的
字符串会变得那么长。将您的
开关声明如下所示:

switch (textInput.charAt(i)) {
case ' ':
    output.append("wus65s");
    break;
case 'a':
    output.append("pb7gxr");
    break;
case 'b':
    output.append("9b3ptw");
    break;
case 'c':
    output.append("hvtc92");
    break;
    ...........................
    ...........................
case 'z':
    output.append("acxdox");
    break;
default:
    // handle the case for a char that is neither a letter nor a whitespace
    break;
}

您需要设置一个
中断
在每个
案例中,否则将处理以下所有案例。我还将添加一个
默认值
大小写,以便处理任何不是字母或空格的字符。在每个开关大小写上添加一个分隔符,否则,匹配大小写下的所有大小写都将被执行。哦,我的天啊,我感觉好傻,不敢相信我错过了这个。谢谢,你应该将此作为答案发布,这样我就可以将其标记为已接受