冒泡排序;统计一个字符串中某一个字符出现的次数;将字符串逆序排列;在空格处插入两个#号;清除字符串中的某个字符 java

1、数组冒泡排序

public class Exerse1{
    public static void arraySort(int[] arr){
        for(int i=0;i<arr.length;i++)//i控制冒泡的次数
            for(int j=0;j<arr.length-i-1;j++){       // arr.length-1-i是为了减少循环的次数
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];   //交换
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
    }
    public static void main(String[] args){
        int arr[]={5,3,1,4,7};
        arraySort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

2、统计一个字符串中某一个字符出现的次数

第一种:统计一个字符串的个数

public class Exerse1{
    public static int getCount(char[] arr,char ch){
        if(arr==null){
            return -1;
        }
        int count=0;
        for(int i=0;i<arr.length;i++){
        if(arr[i]==ch){
            count++;
        }
        }
        return count;
    }
    public static void main(String[] args){
        String str="i want to do something";
        char[] arr=str.toCharArray();
        int count=getCount(arr,'t');
        System.out.println(count);
    }
}

第二种:统计多个字符串的个数

public class Exerse1{
    public static int[] getCount(char[] arr,char ch,char a){
        if(arr==null){
            return null;
        }
        int count=0,count1=0;
        int[] countArr=new int[2];
        for(int i=0;i<arr.length;i++){
        if(arr[i]==ch){
            count++;
        }
        if(arr[i]==a){
            count1++;
        }
        }
        countArr[0]=count;
        countArr[1]=count1;
        return countArr;
    }
    public static void main(String[] args){
        String str="i want to do something";
        char[] arr=str.toCharArray();
        int[] count=getCount(arr,'t','a');
        System.out.println(Arrays.toString(count));
    }
}

3、将字符串逆序排列

public class Exerse1{
    public static char[] reverse(String str){
        char[] arr=str.toCharArray();
        for(int i=0; i<arr.length/2;i++){
          char temp=0;
          temp=arr[i];
          arr[i]=arr[arr.length-i-1];
          arr[arr.length-i-1]=temp;
      }
      return arr;
  }
  public static void main(String[] args){
      String str="i want to do something";
      char[] arr=reverse(str);
      for(int i=0; i<arr.length;i++)
      System.out.print(arr[i]);
  }
}

4、在空格处插入两个#号

方法一:调用字符串中的append

public class Exerse1{
  public static String replace(StringBuffer str) {
  StringBuffer str1 = new StringBuffer();
  for (int i = 0; i < str.length(); i++) {
      if (str.charAt(i) == ' ') {
          str1.append('#');
          str1.append('#');
      } else {
          str1.append(str.charAt(i));
      }
  }
  return str1.toString();//返回该对象的字符串表示。
}
public static void main(String[] args) {
  StringBuffer str = new StringBuffer("I want to do somethings");
  String str1= replace(str);
  System.out.println(str1);
}
}

方法二

public class Exerse1{
    public static char[] replace(char[] arr){
        int count=0;
        int len=arr.length;
        for(int i=0;i<len;i++){//统计空格个数
            if(arr[i]==' '){
                count++;
            }
        }
        arr=Arrays.copyOf(arr,len+count);
        int k=0;
        for(int j=len-1;j>=0;j--,k++){
            if(arr[j]!=' '){
                arr[arr.length-1-k]=arr[j];
            }
            else{
                arr[arr.length-1-k]='#';
                k++;
                arr[arr.length-1-k]='#';
            }
        }
        return arr;
    }
    public static void main(String[] args){
        String str="i am  a student";
        char[] arr=replace(str.toCharArray());
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]);
        }
    }
}

5、清除字符串中的某个字符

第一种

public class Test{
public static char[] clear(String str,char e){
  char[] arr=str.toCharArray();//将字符串转化成数组
  int len=arr.length;
  int count=0;
  for(int i=0;i<len;++i){
  if(arr[i]==e){
      count++;
  }
  }
  for(int j=len-1;j>=0;j--){
        if(arr[j]==e){
            for(int k=j;k<len-1;k++){
            arr[k]=arr[k+1];
            }
        }
    }
  arr=Arrays.copyOf(arr,len-count);
  return arr;
}
public static void main(String[] args){
  String str="i am a student";
  char[] arr=clear(str,'e');
  for(int i=0;i<arr.length;++i){
      System.out.print(arr[i]);

  }
}
}

第二种(和第一种类似)

public class Test{
public static char[] cover(char[] arr,char e){
int count=0;
for(int i=0;i<arr.length;++i){
  if(arr[i]==e){
      count++;
  }
}
for(int i=0;i<arr.length;++i){
  if(arr[i]==e){//移动数据
      for(int j=i;j<arr.length-1;j++){
          arr[j]=arr[j+1];
      }
  }
}
arr[arr.length-count]='\0';
return arr;
}
public static void main(String[] args){
String str="i am a student";
char[] arr=cover(str.toCharArray(),'e');
for(int i=0;arr[i]!='\0';++i){
  System.out.print(arr[i]);
}
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值