gpt4 book ai didi

java - 如何将值从一种方法返回到另一种方法并交换

转载 作者:太空宇宙 更新时间:2023-11-04 08:45:24 25 4
gpt4 key购买 nike

我有这个

public class Mapper implements ScramblerIF
{
private static String map = "drsjckpwrypwsftylmzxopqtdo";

public static String charAt(String str)
{
//char[] chars = str.toCharArray();
int length = str.length();

for(int i=0; i<length; i++)
{
char aChar = str.charAt(i);
char upper = Character.toUpperCase(aChar);
int num = (upper - 'A');
char mChar = map.charAt(num);
//String chard = Character.toString(mChar);

StringBuffer buf = new StringBuffer( str);
buf.setCharAt( i, mChar );
}
return str;
}

public String scramble(String str) {
return charAt(str);
}
}

我正在尝试将其到达该方法的位置

 public String scramble(String str) {
return charAt(str);
}

返回计算值

 public static String charAt(String str)

方法。不知道哪里错了。

也可以代替使用

StringBuffer buf = new StringBuffer( str);
buf.setCharAt( i, mChar );

如何使用交换功能?当我尝试时

 char temp = chars[i];
chars[i] = chars[mChar];
chars[mChar] = temp;

我收到了 ArrayIndexOutOfBoundsException。我想做的总结是“对于原始字符串中的每个字符,使用其在字母表中的位置来查找其在映射字符串中的替换。例如,字符串“dog”将被翻译为“jtp”。

最佳答案

此拼字游戏使用您提供的替换 map 。它还处理大写和小写大小写字母:

public class Mapper {
// abcdefghijklmnopqrstuvwxyz
private static String map = "drsjckpwrypwsftylmzxopqtdo";

public static String scramble(String str) {

if (!str.matches("[A-Za-z]*"))
throw new RuntimeException(str + " contains weird characters");

String out = "";
for (char c : str.toCharArray()) {
if (Character.isUpperCase(c)) {
out += Character.toUpperCase(map.charAt(c - 'A'));
} else {
out += map.charAt(c - 'a');
}
}

return out;

}

public static void main(String[] args) {
System.out.println(scramble("David"));
}
}

关于java - 如何将值从一种方法返回到另一种方法并交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440604/

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