**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
26天前关门了。
改进这个问题
我正在编写一个函数,它接受一个整数字符串并将其转换为一个数组。然后,在数组中的每个元素上,更改值,将数组转换回字符串,然后返回字符串。此代码给出一个错误。到目前为止,我的情况是:
import java.util.*;
public static void swap(int[] encrypted, int i, int j)
{
int temp = encrypted[i]; encrypted[i] = encrypted[j]; encrypted[j] =
temp;
}
// Input string should only be 4 digits. Ex "1234"
public static String encrypt(String str)
{
int i;
int len = str.length(); // get length of string
int[] encrypted = new int[len]; // size of array
for (i = 0; i < len; i++)
{
// this should be placing integer at string position
// i, altering its value, and then placing it in
// encrypted[i]. This does not work
encrypted[i] = str.toIntArray(i) + 7 % 10;
}
// swaps elements in array
swap(encrypted, 0, 2);
swap(encrypted, 1, 3);
// should convert the array back into a string.
// Also might not work
str = String.valueOf(encrypted);
// return new string
return str;
}
给定输入字符串“1234”,我希望输出为0189。1 + 7 % 10 = 8... 等等。交换索引0和2、1和3。我还不习惯所有的java命令,因为我还在学习。如果有什么我做得不对,请告诉我。
2条答案
按热度按时间iaqfqrcu1#
而不是
尝试
odopli942#
String
没有任何名称为的方法,toIntArray
.代替
具有
2.使用前检查索引,例如使用前
swap(encrypted, 0, 3)
,您应该检查encrypted.length > 3
.3.更正将数组转换回字符串的方式。
演示:
输出: