我已经被这个问题困住了两个小时了。基本上我需要反转一个字符串(我没有做任何问题),然后交换每个第 n 个字母(这是我卡住的地方)。
这是我到目前为止所拥有的:
public class StringMethods {
public static void main(String[] args) {
String s = "Hey there";
int n = 2;
System.out.println(reverseString(s));
System.out.println(reverseStringChallenge(s, n));
}
private static String reverseString(String s) {
String reversed = "";
for (int i = s.length() - 1; i >= 0; i--) {
reversed = reversed + s.charAt(i);
}
return reversed;
}
private static String reverseStringChallenge(String s, int n) {
String reversed = "";
String swapped = "";
for (int i = s.length() - 1; i >= 0; i--) {
reversed = reversed + s.charAt(i); // normal reverse
}
char [] charArray = reversed.toCharArray(); //Strings are immutable, convert string to char array
for(int i = 0; i < charArray.length; i++) {
if(i%n == 0) {
//this is where im stuck
}
}
return swapped;
}
}
我知道字符串在 java 中是不可变的,所以我需要将反转的字符串转换为 char 数组,然后循环遍历数组,但不知道在这里做什么。
任何建议将不胜感激。它在我的脑海里。
编辑:对不起,我所说的每第 n 个字母交换的意思是说 n = 2。然后每第二个字母都会与前一个字母交换。