Java 将字母切换为数组中的字符
我试图用存储在数组中的字符切换字符,我和我的老师被卡住了 这方面的一个例子是: abcdef将切换到zyxwvu 或 hello会切换到svool吗 下面是上述代码的图片和链接Java 将字母切换为数组中的字符,java,arrays,list,Java,Arrays,List,我试图用存储在数组中的字符切换字符,我和我的老师被卡住了 这方面的一个例子是: abcdef将切换到zyxwvu 或 hello会切换到svool吗 下面是上述代码的图片和链接 首先,您应该将i>=alpha.length更改为i='A'){ 转换+=字母版本[msg.charAt(i)-'A']; }否则{ 转换+=味精字符(i); } } System.out.println(“消息:+已转换); } 感谢您的帮助,现在是您发送内容的快速补充,如果我能够将其反转回svool-->您好,我该
首先,您应该将
i>=alpha.length
更改为i
,但这并不重要,因为您所做的不会起作用
msg.replace(…)
调用不会更改msg
的值,但即使更改了,结果也不是您想要的,因为您将a
更改为z
,然后将z
更改回a
退后一步,重新思考你想做什么
提示:使用
msg.tocharray()
,然后更新数组中的字符,完成后再转换回String
静态字符串切换字母(字符串文本){
char[]chars=Normalizer.normalize(text,Normalizer.Form.NFD).toCharArray();
for(int i=0;i 如果(ch>='a'&&ch='a'&&ch此代码将帮助您了解流程:
public static void main(String[] args) {
// ****************************************
// ** Call your function to test them in **
// ** the main function here. **
// ****************************************
String msg = "Yes Sir How may I help you ";
//Alphabet
String alpha[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
//Alphabet Reversed
String alpharev[] = {"z", "y", "x", "w", "v", "u", "t", "s", "r", "q", "p", "o", "n", "m", "l", "k", "j", "i", "h", "g", "f", "e", "d", "c", "b", "a"};
String converted = "";
for (int i = 0; i < msg.length(); i++){
if(msg.charAt(i) >= 'a'){
converted+=alpharev[msg.charAt(i) - 'a'];
} else if(msg.charAt(i) >= 'A'){
converted+=alpharev[msg.charAt(i) - 'A'];
} else{
converted+= msg.charAt(i) ;
}
}
System.out.println("Message: " + converted);
}
publicstaticvoidmain(字符串[]args){
// ****************************************
//**调用函数以在中测试它们**
//**此处的主要功能**
// ****************************************
String msg=“是的,先生,我能为您做些什么”;
//字母表
字符串alpha[]={“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”};
//颠倒字母表
字符串alpharev[]={“z”、“y”、“x”、“w”、“v”、“u”、“t”、“s”、“r”、“q”、“p”、“o”、“n”、“m”、“l”、“k”、“j”、“i”、“h”、“g”、“f”、“e”、“d”、“c”、“b”、“a”};
字符串转换为“”;
对于(int i=0;i='a'){
转换+=字母版本[msg.charAt(i)-'a'];
}如果(msg.charAt(i)>='A'){
转换+=字母版本[msg.charAt(i)-'A'];
}否则{
转换+=味精字符(i);
}
}
System.out.println(“消息:+已转换);
}
感谢您的帮助,现在是您发送内容的快速补充,如果我能够将其反转回svool-->您好,我该怎么做呢?将字符串alpha[]的值交换为字符串alpharev[],反之亦然//字母表字符串alpha[]={“z”、“y”、“x”、“w”、“v”、“u”、“t”、“s”、“r”、“q”、“p”、“o”、“n”、“m”、“l”、“k”、“j”、“I”,“h”、“g”、“f”、“e”、“d”、“c”、“b”、“a”};//字母表反向字符串字母rev[]={“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”};我改变了数组中的值,就像你说的链接:我做错了什么?实际上什么都不做上面的代码也适用于反向。。。