使用编码代码的java编码字符串
以下是我的代码片段:
for (int i=0;i<(in.length());i++)
{
char e=cop.charAt(i);
if (e==' ')
{
sav=sav+" ";
continue;
}
int n=(int)e;
if (n>=(91-ef))
{
//here is where the statement should be
continue;
}
n=n+ef;
sav=sav+((char)n);
}
in:用户输入的字符串
ef:用户输入的编码因子
sav:我正在其中存储修改过的字符串
在这里,我需要做的是输入一个大写字符串(单词或句子),通过用户输入的编码因子增加字符串中每个字符的ASCII值,并以新的ASCII值打印相应的字符。空格将保留空格,如果字符应超过“Z”,它将从“A”重新开始。这是我遇到的最后一个问题。在上面的代码中我注释过的地方应该有一条语句,但我不知道它应该是什么。请帮忙
下面是我需要做的一个示例:
输入:汤米
输出:YTRRD(编码因子为5时)
# 1 楼答案
我会先添加,然后使用字符而不是原始数字进行检查
或者使用常数
# 2 楼答案
在您的代码中,这应该是可行的:
continue
李>n+ef
是最终的“正常”值,例如:Y=89,因此,加上5,它变成94李>-90
检查其大于90的程度,即4(在Y的情况下)李>64 + (n+ef-90)
-然后把这个数字加到64,即64+4=68=D-ef
当你在那之后添加ef
。这段代码后面的行是:n=n+ef;
。这将使68+4=72=H。但是你已经有了所需的字符,也就是D,所以你减去ef
,它变成68-5=63。然后,在下一行中,将其相加,得到63+5=68=D# 3 楼答案
遵循以下步骤:
e
是ASCII码中的一个字符。使用e - 'A'
将其转换为[0-25]
值ef
'A'
添加到结果中,以便将值转换回['A'-'Z']
值李>代码:
结果:
String+=
是不好的。改用StringBuilder
李>ef
启用负值,请将(e - 'A' + ef)
替换为(e - 'A' + ef + 26)
李>