String类的一些内部实现方法

今天看了一下String类的一些基本用法,以后的时间需要不断巩固自己对java基础的理解,所以写下来让自己可以不断的反复复习。

下面把这些简单的代码实现粘贴下来。

import java.lang.String;
public class StringDemos{
	/**
		答案一:1、模拟String类中trim方法
		思路:
		1.将字符串转换成字符数组
		2.定义start 和 end 变量
		3.判断收尾是否有空格,首有则start++,尾有则end--,保证start<end
		4.可以用到subString(start,end)方法.截取空格
	*/
	public static String myTrim(String str){
		int start = 0;
		int end = str.length()-1;
		char[] ch =str.toCharArray(); 
		while((start<end)&&ch[start]==' ')
			start++;
		while((start<end)&&ch[end]==' ')
			end--;
		return str.substring(start,end);
	}
	/**
		答案二:2、将Sting字符串翻转
		思路:
		1.将字符串转换成字符数组
		2.定义for循环将指定的位置(x,y)进行字符位置转换
		3.返回的结果转换成字符串
	*/
	public static String revertString(String str,int x,int y){
		char[] ch = str.toCharArray();
		char[] ch1 = swap(ch,x,y);
		return new String(ch1);
	}
	public static char[] swap(char []ch, int x,int y){
		for(;x<y;x++,y--){
			char temp = ch[x];
			ch[x] = ch[y];
			ch[y] = temp;
		}
		return ch;
	}
	public static String revertString(String str){
		return revertString(str,0,str.length()-1);
	}
	/**
	答案三:3、获取一个字符串中另一个字符串出现的次数
	思路:
	1.定义一个count计数器,
	2.调用indexOf(String str,int fromIndex)方法来获取字符串的当前索引值。
	3.返回count
	*/
	public static int getCounts(String str,String key){
		int count =0;
		int index=0;
		while((index=str.indexOf(key,index))!=-1){
			index = index+key.length();
			sop("index="+index);
			count++;
		}
		return count;
	}
		/**
	答案四:4、获取两个字符串中最大相同子串。
	思路:
	1.比较子串的大小,将大的子串作为目标子串。分割小的子串。
	2.将子串从大到小来进行比较,如果出现相同的子串便是最大子串。
	3.调用contains(CharSequence s)方法,比较是否有相同子串。
	4.调用substring()方法来进行子串的截取。
	*/
	public static String maxString(String str1,String str2){
		//进行子串的比较
		String max = "";
		String min = "";
		max = (str1.length()>str2.length())?str1:str2;
		min = (str1==max)?str2:str1;
	//sop("max="+max+"...min="+min);
		//寻找最大子串,两个变量,一个操作头一个操作尾
		for(int x=0;x<min.length();x++){
			for(int y=min.length();y>x;y--){
			//	sop("sub:=="+min.substring(x,y));
				String str = min.substring(x,y);
				if(max.contains(str)){
					return str;
				}
			}
		}
		return "";
	}
	public static void main(String []args){
		String s = "abdcefg";
		sop("count="+maxString(s,"abdrf"));
	}
	public static void sop(String str){
		System.out.println(str);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值