У меня есть это
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.Резюме того, что я пытаюсь сделать: «Для каждого символа в исходной строке используйте его положение в алфавите, чтобы найти его замену в строке карты. Например, строка« собака »будет переведена в« jtp »."