//String类扩展功能实现
public class Strings{
public static void main(String[] args){
System.out.println(repeat('a',10));
System.out.println(repeat('a',-1));
System.out.println(fillBefore("abc",'A',5));
System.out.println("已有字符串长度超过len:"+fillBefore("abc",'A',2));
System.out.println(fillAfter("abc",'A',5));
System.out.println("已有字符串长度超过len:"+fillAfter("abc",'A',2));
System.out.println("去掉-符号之后 : "+removeAll("aa-bb-cc-dd", "-"));
System.out.println("反转后"+reverse("abcd"));
}
/**
* 重复某个字符
*
* 例如:
* 'a' 5 => "aaaaa"
* 'a' -1 => ""
*
* @param c 被重复的字符
* @param count 重复的数目,如果小于等于0则返回""
* @return 重复字符字符串
*/
public static String repeat(char c, int count) {
if(count>0){
char[] chars = new char[count];
for(int i=0;i<count;i++){
chars[i]=c;
}
String str1 = new String(chars);
return str1;
}else{
System.out.print("数据输入错误");
return "";
}
}
/**
* 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
* 字符填充于字符串前
*
* 例如:
* "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(str.length()<len){
char[] chars = new char[len];
char[] chars2 = str.toCharArray();
for(int i=chars.length-chars2.length,j=0;i<chars.length;i++,j++){
chars[i] = chars2[j];
}
for(int x=0;x<chars.length-chars2.length;x++){
chars[x] = filledChar;
}
String str2 = new String(chars);
return str2;
}else{
return str;
}
}
/**
* 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串<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(str.length()<len){
char[] chars = new char[len];
char[] chars2 = str.toCharArray();
for(int i=0;i<chars2.length;i++){
chars[i] = chars2[i];
}
for(int x=chars2.length;x<chars.length;x++){
chars[x] = filledChar;
}
String str2 = new String(chars);
return str2;
}else{
return str;
}
}
/**
* 移除字符串中所有给定字符串
* 例:removeAll("aa-bb-cc-dd", "-") => aabbccdd
*
* @param str 字符串
* @param strToRemove 被移除的字符串
* @return 移除后的字符串
*/
public static String removeAll(CharSequence str, CharSequence strToRemove) {
String a = str.toString();
String[] strings = a.split("-");
StringBuffer sb = new StringBuffer();
for(int i=0;i<strings.length;i++){
sb.append(strings[i]);
}
String b = sb.toString();
return b;
}
/**
* 反转字符串
* 例如:abcd => dcba
*
* @param str 被反转的字符串
* @return 反转后的字符串
*/
public static String reverse(String str) {
char[] chars = str.toCharArray();
char[] chars2 = new char[chars.length];
for(int i=0,j=chars.length-1;i<chars2.length;i++,j--){
chars2[i] = chars[j];
}
String str1 = new String(chars2);
return str1;
}
}