自己写了一个方法,个人感觉比较挫,请大家指教、
/**
拉丁猪文字游戏——这是一个英语语言游戏。基本规则是将一个英语单词的第一个辅音音素的字母移动到词尾并且加上后缀-ay(譬如“banana”会变成“anana-bay”):除了a、e、i、o、u,其余都是辅音
*/
import java.util.*;
public class Demo02 {
public static void main (String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
Demo02 demo = new Demo02();
demo.changeStr(str);
}
public void changeStr(String str) {
//定义一个字符数组存放元音元素
char[] ch ={'a','e','i','o','u'};
char[] chStr = str.toCharArray();
//定义字符串用来存储之后的字符串
StringBuffer sbNew = new StringBuffer();
StringBuffer sbOld = new StringBuffer(); 
boolean flag = true;
for (int i = 0;i< chStr.length;i++) {
for (int j = 0;j < ch.length;j++) {
if (chStr[i] != ch[j] && flag) {
flag = false;
sbOld.append(chStr[i]).append("ay");
chStr[i] = ' ';
break;
}
}
if (chStr[i] != ' ') {
sbNew.append(chStr[i]);
}
}
sbNew.append(sbOld);
System.out.println("拉丁猪文字:" + sbNew);
}
}

解决方案 »

  1.   

    可以用正则不?、、
    public static void main(String[] args) {

    String s = "banana";
    System.out.println(s.replaceFirst("(.)(?!=[aeiou])(.*)", "拉丁猪文字:$2-$1ay")); }
      

  2.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class Test{
    public static void main(String[] args){
    String content = "banana";
    process(content);
    content = "American";
    process(content);
    content = "ILoveYou";
    process(content);
    } private static void process(String content){
    String regex = "^(?=[\\w&&[^\\d]]+$)(?i)(?<head>[aeiou]*)(?<firstVowel>[^aeiou])(?<tail>.*$)";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(content);
    if(matcher.matches()){
    content = matcher.group("head") + matcher.group("tail") + "-" + matcher.group("firstVowel") + "ay";
    }
    System.out.println(content);
    }
    }
      

  3.   

    import java.util.Scanner;public class Latinpig { public static void main(String[] args) {
    // TODO Auto-generated method stub
    Latinpig lp=new Latinpig();
    lp.test();
    }
     public void test(){
     
    char s0;
    String s1,s2;
    char s4 = 0;
    Scanner sc=new Scanner(System.in);
    s1=sc.next();
    s0=s1.charAt(0);//首字母
    s2=s0+"ay";
    for(int i=1;i<s1.length();i++)

     System.out.print(s4=s1.charAt(i));
    System.out.println(s4+"-"+s2);
     }
    }