【问题描述】小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。【输入格式】输入一行,包含一个单词,单词中只包含小写英文字母。【输出格式】输出答案,或者为yes,或者为no。【样例输入】lanqiao【样例输出】yes【样例输入】world【样例输出】no【评测用例规模与约定】对于所有评测用例,单词中的字母个数不超过100。
emmmmm…具体解析后续可能会加上(也可能懒得写了),这个也不是最终版的,毕竟前面也写了老多次,都出现了各种问题,这个是目前为止没有发现问题的代码。
import java.util.Scanner;
//小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,
//第一段由一个或多个辅音字母组成,
//第二段由一个或多个元音字母组成,
//第三段由一个或多个辅音字母组成,
//第四段由一个或多个元音字母组成。
//给定一个单词,请判断这个单词是否也是这种单词,
//如果是请输出yes,否则请输出no。
//元音字母包括 a, e, i, o, u,共五个,
//其他均为辅音字母。
//【输入格式】输入一行,包含一个单词,单词中只包含小写英文字母。
//【输出格式】输出答案,或者为yes,或者为no。
//【样例输入】lanqiao【样例输出】yes【样例输入】world【样例输出】no
//【评测用例规模与约定】对于所有评测用例,单词中的字母个数不超过100。
public class Text01 {
public static void main(String[] args) {
//单独列出元音字母
char []arr1 = {'a','e','i','o','u'};
System.out.println("请输入一个单词:");
String s = new Scanner(System.in).nextLine();
int a = 0;
while (true) {
for(int i=0; i<arr1.length; i++) {
if(s.indexOf(arr1[i])!=-1) {
//将所有的元音字母用1来代替
s = s.replace(arr1[i], '1');
}
}
if(s.lastIndexOf('1') != s.length()-1) {
System.out.println("no");
break;
}
//以1为分界点将字符串存入一个字符串数组
String []arr2 = s.split("1");
for(int i=0; i<arr2.length; i++) {
if(!arr2[0].isEmpty() && !arr2[i].isEmpty()) {
a++;
}
}
if(a==2) {
System.out.println("yes");
break;
}else {
System.out.println("no");
break;
}
}
}
}