//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;
}
}
}
运行结果: