JavaSE之String类—练习

//String类扩展功能实现
public class Strings{
		public static void main(String[] args){
		//第1个:重复某个字符
		System.out.println("重复某个字符:");
		System.out.println("重复某个字符以前的字符串是:aaaabb");
		String str1="aaaabb";
		String result1;
		Strings strs1=new Strings();
		result1=strs1.repeat('a',4);
		System.out.println("重复某个字符后:");
		System.out.println(result1);
	
		//第2个:将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
        //字符填充于字符串前
		System.out.println("字符填充于字符串前:");
		System.out.println("字符填充于字符串前的字符串:abd");
		String str2="abd";
		String result2;
		Strings strs2=new Strings();
		result2=strs2.fillBefore(str2,'e',2);
		System.out.println("字符填充于字符串前之后:");
		System.out.println(result2);

		//第3个:将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串<br>
        //字符填充于字符串后
		System.out.println("字符填充于字符串后:");
		System.out.println("字符填充于字符串后的字符串:abd");
		String str3="abd";
		String result3;
		Strings strs3=new Strings();
		result3=strs3.fillAfter(str3,'e',2);
		System.out.println("字符填充于字符串后的字符串:");
		System.out.println(result3);

		
		//第4个:移除字符串中所有给定字符串
		System.out.println("移除字符串中所有给定字符串:");
		System.out.println("移除字符串中所有给定字符串以前的字符串是:ax-bbb/s-d");
		String str4="ax-bbb/s-d";
		String result4;
		Strings strs4=new Strings();
		result4=strs4.removeAll(str4, "-");
		System.out.println("移除字符串中所有给定字符串:");
		System.out.println(result4);

			
		//第5个:反转字符串
		System.out.println("字符串的反转:");
		System.out.println("反转以前的字符串是:abdef");
		String str5="abdef";
		String result5;//定义一个字符接受返回的数组
		Strings strs5=new Strings();//创建上面类的对象,调用对象中的方法
		result5=strs5.reverse(str5);
		System.out.println("反转以后的字符串是:");
		System.out.println(result5);
	}


    //1.
     /**
     * 重复某个字符
     * 
     * 例如: 
     * 'a' 5   => "aaaaa"  
     * 'a' -1  => ""
     * 
     * @param c     被重复的字符
     * @param count 重复的数目,如果小于等于0则返回""
     * @return 重复字符字符串
     */
    public static String repeat(char c, int count) {
	   if(count>0){
		   //首先定义一个字符数组来存放一共有多少个重复字符,然后再将这个字符数组转化为字符串,返回结果
        char[] ch=new char[count];	   
	   for(int i=0;i<count;i++){
		  ch[i]=c;		  
	   }
	   String str=new String(ch);//将字符数组全部转化为字符串
	   return str;
	   }else{
       return "";
	   }
    }
	
    
    //2.
     /**
     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
     * 字符填充于字符串前
     *
     * 例如: 
     * "abc" 'A' 5  => "AAabc"
     * "abc" 'A' 3  => "abc"
     *
     * @param str        被填充的字符串
     * @param filledChar 填充的字符
     * @param len        填充长度
     * @return 填充后的字符串
     */
    public static String fillBefore(String str, char filledChar, int len) {
       if(len>0){
		   char[] ch=new char[len];
		   for(int i=0;i<len;i++){
			   ch[i]=filledChar;
		   }
		   String str1=new String(ch);//将字符数组全部转化为字符串
		   //下面将两个字符串进行拼接返回即可
		   String str2=str1+str;
		   return str2;
	   }else{
       return "";
	   }
    }
	
    
	//3.
    /**
     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串<br>
     * 字符填充于字符串后
     * 例如: 
     * "abc" 'A' 5  => "abcAA"
     * "abc" 'A' 3  => "abc"
     *
     * @param str        被填充的字符串
     * @param filledChar 填充的字符
     * @param len        填充长度
     * @return 填充后的字符串
     */
    public static String fillAfter(String str, char filledChar, int len) {
       if(len>0){
		   char[] ch=new char[len];
		   for(int i=0;i<len;i++){
			   ch[i]=filledChar;
		   }
		   String str1=new String(ch);//将字符数组全部转化为字符串
		   //下面将两个字符串进行拼接返回即可
		   String str2=str+str1;//拼接的顺序
		   return str2;
	   }else{
       return "";
	   }
    }
	

	//4.
    /**
     * 移除字符串中所有给定字符串
     * 例:removeAll("aa-bb-cc-dd", "-") => aabbccdd
     *
     * @param str         字符串
     * @param strToRemove 被移除的字符串
     * @return 移除后的字符串
     */
    public static String removeAll(CharSequence str, CharSequence strToRemove) {
        // 首先需要注意,CharSequence表示字符序列,在进行处理的时候我们需要先将
		// CharSequence转换为String
		String str1=str.toString();//将第一个参数转化为String
		String str2=strToRemove.toString();//将第二个参数转化为String
		if(str.length()>0){//判断这个序列是否为空
			str1=str1.replaceAll(str2,"");//用替换的方式,将需要进行替换的字符全部替换为""
		return str1;//将经过替换以后的字符返回
		}else{
        return null;
		}
    }

	
	
    //5.
    /**
     * 反转字符串
     * 例如:abcd => dcba
     *
     * @param str 被反转的字符串
     * @return 反转后的字符串
     */
    public static String reverse(String str) {
        if(str.length()>0){
			//先将字符串转换为数组,然后将它逆置
			//再将数组转换为字符串返回
			char[] ch=str.toCharArray();
			int left=0;
			int right=ch.length-1;
			//下面实现逆置
			while(left<=right){
				char tmp;
				tmp=ch[left];
				ch[left]=ch[right];
				ch[right]=tmp;
				left++;
				right--;
			}
			//将已经实现逆置的字符数组转化为一个字符串
			String str1;
			str1=new String(ch);
			return str1;
		}else{
        return null;
		}
    }

}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ZhuiZhuDream5/article/details/84329019