JavaSE之String類—練習
阿新 • • 發佈:2018-11-26
//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; } } }
執行結果: