码迷,mamicode.com
首页 > 其他好文 > 详细

String类的一些内部实现方法

时间:2015-08-11 14:16:25      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:string   trim revert   

今天看了一下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);
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

String类的一些内部实现方法

标签:string   trim revert   

原文地址:http://blog.csdn.net/u011521890/article/details/47418371

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!