3 回答

TA貢獻1848條經(jīng)驗 獲得超2個贊
找到“ a”的第一個索引(String.indexOf())和“ o”的最后一個索引(String.lastIndexOf())。如果兩個索引均大于-1,則交換字母
就像是:
public class StackOverflow {
public static void main(String[] args) {
String data = "aaligatoor";
int firstAindex = data.indexOf("a");
int lastOindex = data.lastIndexOf("o");
if (firstAindex > -1 && lastOindex > -1) {
char[] letters = data.toCharArray();
letters[firstAindex] = 'o';
letters[lastOindex] = 'a';
data = new String(letters);
}
System.out.println(data);
}
}
結(jié)果
oaligatoar

TA貢獻1811條經(jīng)驗 獲得超5個贊
String s = "aalligatoor";
int oIndex = s.lastIndexOf('o');
int aIndex = s.indexOf('a');
if (oIndex > -1 && aIndex > -1) {
char[] stringArray = s.toCharArray();
stringArray[oIndex] = 'a';
stringArray[aIndex] = 'o';
s = new String(stringArray);
System.out.println(s);
}
應(yīng)該可以在空間和時間上明智。而且很容易理解和理解。
該indexOf方法返回-1,如果字母沒有在字符串中找到。因此,我們可以進行檢查,只需將字母分配給char數(shù)組中的位置即可。請記住,Java中的字符串是不可變的,因此我們不能將新位置分配給原始字符串。
最后,我們可以將char數(shù)組重新轉(zhuǎn)換為交換后的字符串。
添加回答
舉報