Java-帮助将字母转换为整数,添加5,然后再转换回字母
首先,这是到目前为止我的代码Java-帮助将字母转换为整数,添加5,然后再转换回字母,java,integer,letters-and-numbers,Java,Integer,Letters And Numbers,首先,这是到目前为止我的代码 public int encrypt() { /* This method will apply a simple encrypted algorithm to the text. * Replace each character with the character that is five steps away from * it in the alphabet. For instance, 'A' becomes 'F', 'Y' becomes
public int encrypt() {
/* This method will apply a simple encrypted algorithm to the text.
* Replace each character with the character that is five steps away from
* it in the alphabet. For instance, 'A' becomes 'F', 'Y' becomes '~' and
* so on. Builds a string with these new encrypted values and returns it.
*/
text = toLower;
encrypt = "";
int eNum = 0;
for (int i = 0; i <text.length(); i++) {
c = text.charAt(i);
if ((Character.isLetter(c))) {
eNum = (int) - (int)'a' + 5;
}
}
return eNum;
}
public int encrypt(){
/*此方法将对文本应用一个简单的加密算法。
*将每个字符替换为距离目标五步的字符
*它在字母表中。例如,“A”变成“F”,“Y”变成“~”和
*依此类推。使用这些新的加密值构建一个字符串并返回它。
*/
text=toLower;
加密=”;
int eNum=0;
for(inti=0;i//只是一个用于测试的快速转换
字符串yourInput=“AbC.toLowerCase();
字符串convertedString=“”;
对于(int i=0;i少数问题-
首先-eNum=(int)-(int)'a'+5;
你不需要第一个(int)
我相信,你可以只做-eNum=(int)c+5;
。你的表达式总是会得到一个负整数
您不应该返回eNum
,而应该将其转换为字符并添加到字符串中,然后在末尾返回字符串(或者您可以创建一个与字符串长度相同的字符数组,继续将字符存储在数组中,然后返回从字符数组创建的字符串)
不应在条件中使用a
,而应使用c
,它表示第i个索引处的当前字符
我猜代码中并非所有变量都是类的成员变量(实例变量),因此应该在代码中使用数据类型定义它们
代码更改示例-
String text = toLower; //if toLower is not correct, use a correct variable to get the data to encrypt from.
String encrypt = "";
for (int i = 0; i <text.length(); i++) {
char c = text.charAt(i);
if ((Character.isLetter(c))) {
encrypt += (char)((int)c + 5);
}
}
return encrypt;
String text=toLower;//如果toLower不正确,请使用正确的变量获取要加密的数据。
字符串encrypt=“”;
对于(int i=0;i尝试类似的方法,我相信这有几个优点:
public String encrypt(String in) {
String workingCopy = in.toLowerCase();
StringBuilder out = new StringBuilder();
for (int i = 0; i < workingCopy.length(); i++) {
char c = workingCopy.charAt(i);
if ((Character.isLetter(c))) {
out.append((char)(c + 5));
}
}
return out.toString();
}
公共字符串加密(字符串输入){
字符串workingCopy=in.toLowerCase();
StringBuilder out=新的StringBuilder();
对于(int i=0;i
这段代码有点冗长,但可能更容易理解。我介绍了StringBuilder,因为它比执行string=string+x
更有效,实际上它存储最后一个字母的值加上5。问题是eNum是一个int,您甚至从未尝试连接字符串或返回的字符ngenum
。您需要将字符附加到加密
中并返回它。这里有一些东西可以帮助您:啊,谢谢!我仔细查看了它,它似乎有效。我会确保仔细查看它,并确定哪里出错。好的,如果它开始对您有效,请务必接受答案(无论您喜欢哪种答案)通过点击左边的勾号。这将有助于社区。
public String encrypt(String in) {
String workingCopy = in.toLowerCase();
StringBuilder out = new StringBuilder();
for (int i = 0; i < workingCopy.length(); i++) {
char c = workingCopy.charAt(i);
if ((Character.isLetter(c))) {
out.append((char)(c + 5));
}
}
return out.toString();
}