String 类扩展功能的实现

对于String类进行相应的扩展方法:

//String类扩展功能实现
public class Strings{

    
     /**
     * 重复某个字符
     * 
     * 例如: 
     * 'a' 5   => "aaaaa"  
     * 'a' -1  => ""
     * 
     * @param c     被重复的字符
     * @param count 重复的数目,如果小于等于0则返回""
     * @return 重复字符字符串
     */
    public static String repeat(char c, int count) {
       
	   if(count<=0){
		   return null;
	   }else{
		   char[] data = new char[count];
		   for(int i = 0;i<data.length;i++){
			   data[i] = c;
		   }
		   return new String(data);//字符数组转字符串
		   
	   }
    }
    
    
     /**
     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
     * 字符填充于字符串前
     *
     * 例如: 
     * "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) {
       char[] data = str.toCharArray();//将字符串转换为字符数组
	   if(data.length>=len){
		   return str;
	   }else{
		   char[] data2 = new char[data.length+len];
		   for(int i =0;i<len-data.length;i++){
			   data2[i] = filledChar;
		   }
		   for(int i=0;i<data.length;i++ ){
			   data2[len-data.length+i] =data[i]; 
		   }
		   return new String(data2);
	   }  
    }
    
    /**
     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串<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) {
        char[] data = str.toCharArray();//将字符串转换为字符数组
	   if(data.length>=len){
		   return str;
	   }else{
		   char[] data2 = new char[data.length+len];
		   for(int i = 0;i<data.length;i++){
			   data2[i] = data[i];
		   }
		   for(int i = data.length;i<len;i++){
			   data2[i] = filledChar;
		   }
		   return new String(data2);
	   }
        
    }

    /**
     * 移除字符串中所有给定字符串
     * 例:removeAll("aa-bb-cc-dd", "-") => aabbccdd
     *
     * @param str         字符串
     * @param strToRemove 被移除的字符串
     * @return 移除后的字符串
     */
    public static String removeAll(CharSequence str, CharSequence strToRemove) {
		String str1 = (String)str;
		String[] result = str1.split("-");
		for(int i = 0;i<result.length;i++){
		 System.out.print(result[i]);
		}
		System.out.println();
        return str1;
    }
    
    /**
     * 反转字符串
     * 例如:abcd => dcba
     *
     * @param str 被反转的字符串
     * @return 反转后的字符串
     */
    public static String reverse(String str) {
        char[] data = str.toCharArray();
		int right = data.length-1;
		int left = 0;
		while(left<right){
			char temp = data[left];
			data[left] = data[right];
			data[right] = temp;
			left++;
			right--;
		}	
        return new String(data);
    }
       
	
	
	public static void main(String[] args){
		String str1 = "hello";
		String str2 = "h-e-l-l-o";
		char a = 'a';
		int t = 3;
		int t1 = -1;
		int t2 = 10;
		System.out.println("1."+repeat(a,t));
		System.out.println("1."+repeat(a,t1));
		System.out.println("2."+fillBefore(str1,a,t));
		System.out.println("2."+fillBefore(str1,a,t2));
		System.out.println("3."+fillAfter(str1,a,t));
		System.out.println("3."+fillAfter(str1,a,t2));
		System.out.println("4."+removeAll(str2,"-"));
		System.out.println("5."+reverse(str1));
		
	}
    
}

对应的结果如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值