文本操作:拉丁豬文字游戲
這個游戲的規則我見過一種以上,這里就以維基百科的規則為案例來實現就好了。
規則大概是這樣:給定一個單詞,從左往右統計,將單詞字母中第一個元音字母之前的單詞,移動到詞尾,移動完畢之后再在新組成的單詞詞尾添加“ay”。
例如:給定單詞banana,那么變換之后成為ananabay;給定單詞three,經過變換之后成為eethray
1 package demo_2015_11_16;
2
3 import java.util.Scanner;
4
5 public class DEMO {
6
7 /**
8 * 拉丁豬文字游戲
9 * @param args
10 */
11 public static void main(String[] args) {
12 String vowels = "aeiou";
13 Scanner s = new Scanner(System.in);
14 String srcStr = s.nextLine();
15 System.out.println("你輸入的是:" + srcStr);
16
17 StringBuilder retainStr = new StringBuilder();
18
19 char[] srcChars = srcStr.toCharArray();
20 int returnIdx = 0;
21 int tempIdx = 0;
22 for (int i = 0; i < srcChars.length; i++) {
23 tempIdx = vowels.indexOf(String.valueOf(srcChars[i]).toLowerCase());
24 //當前位置是否是元音
25 if(tempIdx != -1){
26 //元音,終止,截取
27 returnIdx = i;
28 break;
29 }else{
30 //輔音,保留 ,跳過
31 retainStr.append(srcChars[i]);
32 continue;
33 }
34 }
35 System.out.println(srcStr.substring(returnIdx) + retainStr.toString() + "ay");
36 }
37
38 }
39
2
3 import java.util.Scanner;
4
5 public class DEMO {
6
7 /**
8 * 拉丁豬文字游戲
9 * @param args
10 */
11 public static void main(String[] args) {
12 String vowels = "aeiou";
13 Scanner s = new Scanner(System.in);
14 String srcStr = s.nextLine();
15 System.out.println("你輸入的是:" + srcStr);
16
17 StringBuilder retainStr = new StringBuilder();
18
19 char[] srcChars = srcStr.toCharArray();
20 int returnIdx = 0;
21 int tempIdx = 0;
22 for (int i = 0; i < srcChars.length; i++) {
23 tempIdx = vowels.indexOf(String.valueOf(srcChars[i]).toLowerCase());
24 //當前位置是否是元音
25 if(tempIdx != -1){
26 //元音,終止,截取
27 returnIdx = i;
28 break;
29 }else{
30 //輔音,保留 ,跳過
31 retainStr.append(srcChars[i]);
32 continue;
33 }
34 }
35 System.out.println(srcStr.substring(returnIdx) + retainStr.toString() + "ay");
36 }
37
38 }
39
posted on 2015-11-16 16:27 都較瘦 閱讀(675) 評論(0) 編輯 收藏 所屬分類: Java相關案例積累