(codewars)Simple Pig Latin

題目

題目鏈接
Move the first letter of each word to the end of it, then add “ay” to the end of the word. Leave punctuation marks untouched.
Examples

pigIt('Pig latin is cool'); // igPay atinlay siay oolcay
pigIt('Hello world !');     // elloHay orldway !

Tests:

public class SolutionTest {
    @Test
    public void FixedTests() {
        assertEquals("igPay atinlay siay oolcay", Kata.pigIt("Pig latin is cool"));
        assertEquals("hisTay siay ymay tringsay", Kata.pigIt("This is my string"));
        assertEquals("ctaAay steay abulafay", Kata.pigIt("Acta est fabula"));
        assertEquals("arbaBay onnay acitfay hilosophumpay", Kata.pigIt("Barba non facit philosophum"));
        assertEquals("ctaAay steay abulafay", Kata.pigIt("Acta est fabula"));
        assertEquals("ucullusCay onnay acitfay onachummay", Kata.pigIt("Cucullus non facit monachum"));
        assertEquals("uraDay exlay edsay exlay", Kata.pigIt("Dura lex sed lex"));
        assertEquals("rrareEay umanumhay steay", Kata.pigIt("Errare humanum est"));
        assertEquals("luctuatFay ecnay ergiturmay", Kata.pigIt("Fluctuat nec mergitur"));
        assertEquals("uttaGay avatcay apidemlay", Kata.pigIt("Gutta cavat lapidem"));
        assertEquals("icHay teay uncnay", Kata.pigIt("Hic et nunc"));
        assertEquals("nIay inovay eritasvay", Kata.pigIt("In vino veritas"));
        assertEquals("uxLay niay enebristay ucetlay", Kata.pigIt("Lux in tenebris lucet"));
        assertEquals("orituriMay olumusnay orimay", Kata.pigIt("Morituri nolumus mori"));
        assertEquals("orituriMay olumusnay orimay", Kata.pigIt("Morituri nolumus mori"));
        assertEquals("uncNay steay ibendumbay", Kata.pigIt("Nunc est bibendum"));
        assertEquals("Oay emporatay oay oresmay !", Kata.pigIt("O tempora o mores !"));
        assertEquals("anemPay teay ircensescay", Kata.pigIt("Panem et circenses"));
        assertEquals("uisQay ustodietcay psosiay ustodescay ?", Kata.pigIt("Quis custodiet ipsos custodes ?"));
        assertEquals("equiescatRay niay acepay", Kata.pigIt("Requiescat in pace"));
        assertEquals("icSay ransittay loriagay undimay", Kata.pigIt("Sic transit gloria mundi"));
        assertEquals("imeoTay anaosDay teay onaday erentesfay", Kata.pigIt("Timeo Danaos et dona ferentes"));
        assertEquals("ltimaUay ecatnay", Kata.pigIt("Ultima necat"));
        assertEquals("eniVay idivay icivay", Kata.pigIt("Veni vidi vici"));
    }


}


實現思路

簡單的字符串操作

代碼

public class PigLatin {
    public static String pigIt(String str) {
         StringBuffer sb = new StringBuffer();
        String[] splitStr = str.split(" ");
        for (int i = 0; i < splitStr.length; i++) {
            char[] chars = splitStr[i].toCharArray();
            if (chars.length == 1 && !((chars[0] >= 97 && chars[0] <= 122) || (chars[0] >= 65 && chars[0] <= 90))) {
                sb.append(chars[0]);
            } else {
                for (int j = 1; j < chars.length; j++) {
                    sb.append(chars[j]);
                }
                sb.append(chars[0]);
                sb.append("ay");
                sb.append(" ");
            }
        }
        return sb.toString().trim();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章