一个简单的题目:
给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b 。两个字符串 相似 的前提是它们都含有相同数目的元音('a','e','i','o','u','A','E','I','O','U')。注意,s 可能同时含有大写和小写字母。如果 a 和 b 相似,返回 true ;否则,返回 false。
先来分析一波,一个偶数长度的字符串一定可以劈成两半。前面一半和后面一半中包含的(虽然对元音字母可能不太了解但是这里完全不需要) 这个{'a','e','i','o','u','A','E','I','O','U'}字符串里面的字母的数目是相同的那么就返回true,反之返回false。
上代码;
public static void main(String[] args) {
String str="aeiouAEIOU";//将所有元音字母做成一个字符串;
Scanner input=new Scanner(System.in);
System.out.println("请输入一个偶数长的字符串:");
String s= input.next();//输入一个字符串
if (s.length()%2==0){//进行判断是否为偶数,防止报错
String a=s.substring(0,s.length()/2);//给前半段定义一个字符串a
String b=s.substring(s.length()/2);//同理定义
int count1=0;//定义a中的元音个数
int count2=0;//定义b中的元音个数
for (int i = 0; i <s.length()/2; i++) {//循环a字符串
if (str.indexOf(a.charAt(i))!=-1){//判断a中是否有str中的字母
count1++;//有count1就加一
}}
for (int i = 0; i <s.length()/2; i++) {
if (str.indexOf(b.charAt(i))!=-1){
count2++;
}//同理
}
if (count1==count2){//然后判断个数是否相同
System.out.println(true);
}else {
System.out.println(false);
}
}else {
System.out.println("输入不正确!");//最后对输入错误的进行输出
//当然我这里还少了一种判断他是否为字母组成的字符串的判断
}
}
此处的代码为小伙个人对StringBuffer进行的小小联系
// String s = sb.toString();
// System.out.println(s);
// StringBuffer append = sb.append(1);
// System.out.println(append.toString());
// String string = sb.append(" java spark kafka flume flink").insert(12, "hadoop ").toString();
// System.out.println(string);
// StringBuffer love=new StringBuffer("我真的很你");
// String l=love.toString();
// String s1=love.append("java").insert(4,"爱").toString();
// System.out.println(s1);
String s="1234567890";
StringBuffer s1=new StringBuffer(s);
System.out.println(s1);
// String s=s1.insert(7,",").toString();
// s=s1.insert(4,",").toString();
// s=s1.insert(1,",").toString();
for (int i = s1.length(); i >0; i=i-3) {
s=s1.insert(i,",").toString();
}
System.out.println(s);
顺带再带上StringBuffer的方法
StringBuffer:
主要挑重点方法记住就差不多了,我看着这么多太难了
String类型的我就不给图了,可以去idea中ctrl+o看方法哦。(肯定不是我懒的缘故!!)