我只需要反转String中的字母,并使用Character.isLetter将符号和数字保持在同一位置,而且我需要保持颠倒单词的相同顺序。我的代码反转了一个字符串,并保留了符号和数字,但更改了单词的顺序,例如:
我的输入字符串:a1bcd efg!h
我的输出字符串:h1gfe dcb!a
相反,我的输出应该是:d1cba hgf!eclass AnagramsMaker {
public static String createAnagram(String StringToReverse) {
char[] stringToChar = StringToReverse.toCharArray();
int arrayStart = 0;
int arrayEnd = stringToChar.length - 1;
while (arrayStart < arrayEnd) {
if (Character.isLetter(stringToChar[arrayStart]) && Character.isLetter(stringToChar[arrayEnd])) {
char temp = stringToChar[arrayStart];
stringToChar[arrayStart] = stringToChar[arrayEnd];
stringToChar[arrayEnd] = temp;
arrayStart++;
arrayEnd--;
}
else if (Character.isLetter(stringToChar[arrayStart]) && !Character.isLetter(stringToChar[arrayEnd])) {
arrayEnd--;
}
else if (!Character.isLetter(stringToChar[arrayStart]) && Character.isLetter(stringToChar[arrayEnd])) {
arrayStart++;
}
else {
arrayStart++;
arrayEnd--;
}
}
return String.valueOf(stringToChar);
}
}