Java 字符串迭代和构建新的编码字符串不会';行不通
我试图将一个字符串转换成另一个字符串,就像加密一样。基本上,如果我的初始字符串是“ABC”,结果将类似于“pb7gxr9b3ptwhvtc92”,它由3个代码组成,每个代码分别对应于3个初始字符。初始字符串取自Android EditText,当您按下某个按钮时会发生转换,然后,输出显示在TextView中。代码如下:Java 字符串迭代和构建新的编码字符串不会';行不通,java,android,Java,Android,我试图将一个字符串转换成另一个字符串,就像加密一样。基本上,如果我的初始字符串是“ABC”,结果将类似于“pb7gxr9b3ptwhvtc92”,它由3个代码组成,每个代码分别对应于3个初始字符。初始字符串取自Android EditText,当您按下某个按钮时会发生转换,然后,输出显示在TextView中。代码如下: eB.setOnClickListener(new View.OnClickListener() { @Override pub
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;
}
您需要设置一个中断
在每个案例中,否则将处理以下所有案例。我还将添加一个默认值
大小写,以便处理任何不是字母或空格的字符。在每个开关大小写上添加一个分隔符,否则,匹配大小写下的所有大小写都将被执行。哦,我的天啊,我感觉好傻,不敢相信我错过了这个。谢谢,你应该将此作为答案发布,这样我就可以将其标记为已接受