【Java】如何去除字符串空格或者反转字符串or查找一个字符串出现在另一个字符串的次数or返回两个字符串中最大的相同字符串

package basic;

public class MyString {
	
		//创建一个调用打印的方法
	   public static void pri(Object obj){
		   System.out.println(obj);
	   }
	   //例1、去除字符串空格
	   public static String myTrim(String str)
	   {   //初始化指针
		   int begin=0,end=str.length()-1;
		   //判断字符串前后是否为空
	        while(begin<end && str.charAt(begin)==' ')
		     begin++;
	        while(begin<end && str.charAt(end)==' ')
		     end--;
	        //获取非空子串
	        return str.substring(begin,end+1);
	   }
	   
	   //例2、打印反转字符串
	   public static String reverseString(String str,int begin,int end){
		   char[] chs=str.toCharArray();//将字符串转成数组
		   reverse(chs,begin,end);//调用数组反转的方法
		   return new String(chs);//生成新的字符串
	   }
	   public static String reverseString(String str){//重载上面的方法
		   return reverseString(str,0,str.length());//反转所有字符串
	   }
	  private static void reverse(char[] arr,int x,int y){
		  for(int begin=x,end=y-1;begin<end;begin++,end--){
			  exchang(arr,begin,end);//调用转换的方法
		  }
	  }
	  private static void exchang(char[] arr,int x,int y){//实现位置转换
		  char temp=arr[x];
		  arr[x]=arr[y];
		  arr[y]=temp;
		  
	  }  
	  
	  //例3、查找一个字符串出现在另一个字符串的次数
	  public static int getCount(String str,String key){//str为要比较的,key为用来比较的字符串
		      int count=0;
		      int index=0;
		      while((index=str.indexOf(key))!=-1){//当下标不为空时
		    	  str=str.substring(index+key.length());//从上一次被取得下一位开始截取子串
		    	  count++;
		      }
		      return count;
	  }
	  
	  //例4、返回两个字符串中最大的相同字符串
	  public static String getMaxSubString(String str1,String str2)
		{
			String max = "",min = "";//比较两个字符串的大小
			max = (str1.length()>str2.length())?str1: str2;//找出最大的字符串
			min = (max==str1)?str2: str1;//找出最小的字符串
			for(int i=0; i<min.length(); i++)
			{//每循环一次min就少1,i次就减去i
				for(int j=0,k=min.length()-i; k!=min.length()+1; j++,k++)
				{//生成一个临时数组
					String temp = min.substring(j,k);
					if(max.contains(temp))//是否最大数组中包含这个临时数组
						return temp;
				}
			}
			return "null";
		}
	  
	   public static void main(String[] args)
	   {
		String s="    I like java ,java is so beatiful  ";
		String s1="avaasdasw";
		pri("("+s+")");//打印原字符串
	    s=myTrim(s);   //调用去除空格的方法
		pri("("+s+")");//打印截取后的新字符串
		pri("("+reverseString(s)+")");//打印反转新字符串
		pri("count="+getCount(s,"av"));//输出一个字符串出现在另一个字符串的次数
		pri(getMaxSubString(s,s1));//输出两个字符串中最大的相同字符串
	 }
	
}

结果展示:
显示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值