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);
	}
}

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

时间: 2024-10-06 12:10:44

String类的一些内部实现方法的相关文章

String类原理分析及部分方法

//String类原理分析及部分方法 //http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html //http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html //String类包含在java.lang包中,这个包在java的时候就自动import //String类是唯一一个不需要new关键词来创建对象的类. public class Test{ public

string类的两种实现方法及string的一些成员函数的实现

string的第一种实现方法: #include<iostream> using namespace std; class String { public:      String(char *str="")//构造函数       :_str(new char[strlen(str)+1])      {           strcpy(_str, str);      }      String(const String& str)//拷贝构造函数,实现深拷贝

String类中自动重写compareTo( )方法对汉字的比较

在看Java从入门到精通的过程中遇到这样一道习题:定义Student类,该类不实现Comparable接口,定义一个Comparator类比较两个Student对象所在班级名称和名字,班级名相同时用名字进行排序,使用TreeSet观察排序结果. 这是我最初写的程序和运行结果截图 package javautil; import java.util.Iterator; import java.util.TreeSet; import java.util.Comparator; class MyCo

java用String类的toUpperCase()和toLowerCase()方法转字符串的大小写

1.如何判断英文字母的大小写: package com.ldw.string; import java.util.Scanner; /** * @author 作者:ldw E-mail: [email protected] * @version 创建时间:2015年4月28日 下午12:47:26 * 类说明 */ public class UppserOrLower { private static Scanner console; public static void main(Strin

深度解析java.lang.String类的equal(Object obj)方法

背景:最近在研究静态扫描的东西,遇到一个规则:"equals(Object obj)" should be overridden along with the "compareTo(T obj)" method 然后就想深度扒一扒equals和compareTo有什么区别 首先先来看下java.lang.String这个类下面的equals方法是如何实现的. public boolean equals(Object anObject) { if (this == a

Java 1.7.0_06中String类内部实现的一些变化【转】

原文链接: java-performance 翻译: ImportNew.com- 夏千林译文链接: http://www.importnew.com/7656.html ChangeLog: 2013年11月19日,更新了Java8版本中的变化. 013年11月28日,更新了Java 7u40版本中的变化.(感谢Sunny Chan以及他的同事提示我关注新版本的JDK) 共享一个基础char[]  原先的String类中有4个非静态变量: char[] value用于存储字符串. int of

String类之endsWith方法---&gt;检测该字符串以xx为结尾

endsWith(XX)方法是java内置类String类的一个内置方法,我们直接拿来用即可了,下边是api说明:检测该字符串以xx为结尾,结果返回布尔值 public class Demo { public static void main(String[] args) { String Str="神雕侠侣.mp4"; System.out.println(Str.endsWith(".mp4")); } } true

JDK6和JDK7中String类下的substring方法的代码对比(仅贴代码,未详述)

返回主页 回到顶端 jdk1.6版本String.java文件中关于substring的代码及描述 1 /** 2 * Returns a new string that is a substring of this string. The 3 * substring begins with the character at the specified index and 4 * extends to the end of this string. <p> 5 * Examples: 6 *

String类常用方法源码分析

环境:JDK8 主要分析String类的一些常用的方法源码. String 先看String类的定义: public final class String    implements java.io.Serializable, Comparable<String>, CharSequence 可以看到String类被final修饰,因此不能被继承.String类还实现了序列化接口Serializable.可比较的接口Comparable并指定范型为String,该接口必须要实现int comp