1. 程式人生 > >JavaSE之String類—練習

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;
		}
    }

}

執行結果:
在這裡插入圖片描述