gpt4 book ai didi

Java,替换for循环中的字符

转载 作者:行者123 更新时间:2023-12-01 22:39:01 27 4
gpt4 key购买 nike

好吧,显然我是 Java 新手,我目前想做的是一个非常简单的程序,通过将字符串分解为字符数组并用新字符替换字符来加密字符串。

所以到目前为止我所做的是创建一个包含字母表的键数组,我将其与分割字符串进行比较,并且我试图用一个值数组替换字符,该数组基本上只是字母表倒着排列。

到目前为止,当我只是打印出值时,我的代码可以工作,但它无法正确替换字符。

public class Main {

public static void main(String[] args) {

char[] keyArray = {'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'};
char[] valueArray = {'z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'p', 'q', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a'};

String myString = "abcxyz";
char[] myStringArray = myString.toCharArray();

for(int x = 0; x<myString.length(); x++)
{
for(int i = 0; i<keyArray.length; i++)
{
if(myStringArray[x] == keyArray[i])
{
//System.out.println(valueArray[i]); would give the output "zyxcba" as expected
myStringArray[x] = valueArray[i]; // this will only change the characters in the first half of keyArray
}
}
}

System.out.println(myStringArray); //Outputs "abccba" instead of "zyxcba"
}
}

最佳答案

您遇到的问题是,即使您已经进行了替换,您仍然继续循环遍历键数组 - 允许它第二次替换它!

完成替换后,您需要“跳出”for 循环。

public class Main {

public static void main(String[] args) {

char[] keyArray = {'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'};
char[] valueArray = {'z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'p', 'q', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a'};

String myString = "abcxyz";
char[] myStringArray = myString.toCharArray();

for(int x = 0; x<myString.length(); x++)
{
for(int i = 0; i<keyArray.length; i++)
{
if(myStringArray[x] == keyArray[i])
{
//System.out.println(valueArray[i]); would give the output "zyxcba" as expected
myStringArray[x] = valueArray[i]; // this will only change the characters in the first half of keyArray
break; //Exit the loop checking against the keyArray
}
}
}

System.out.println(myStringArray); //Outputs "abccba" instead of "zyxcba"
}
}

关于Java,替换for循环中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26457381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com