Javaの「O」「」手紙の最後の外観と文字の最初の出現のスワップ体位

artshakhov:

タスクが「aaligatoor」とは、例えば、文字列から作るために私を求めている、のような出力:「oaligatoarは」私のような解決策を見つけました:

public static String letterReplacement(final String word) {
            String o = "o";
            String a = "a";
            if (word.contains("a") && word.contains("o")) {
                return word.replaceFirst("a", "o")
                           .replaceFirst("(?s)(.*)" + 'o', "$1" + 'a');
            } else {
                return "Your word does not contain both of 'a' and 'o' letters, sorry...";
            }
        }

それはトリッキーに見えるが、多分誰かがこれを解決するために任意のより理解の方法を知っていますか?私は非常にあなたの援助と注意を感謝しています。

Shar1er80:

「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);
    }
}

結果

oaligatoar

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=196007&siteId=1