当前位置:文档之家› java程序:String字符串处理算法

java程序:String字符串处理算法

public class MyString{
public MyString(){
}
public int indexOf(String content,String find){
return indexOf(content,find,0);
}
public int indexOf(String content,String find,int beginIndex){ char[]ca_content=content.toCharArray();
int len_content=content.length();
int len_find=find.length();
for(int i=beginIndex;i<len_content;i++){
char[]ca_temp=new char[len_find];
for(int j=0;j<len_find && i+j<len_content;j++){
ca_temp[j]=ca_content[i+j];
}
String temp=new String(ca_temp);
if(temp.equals(find)){
return i;
}
}
return -1;
}
public int lastIndexOf(String content,String find){
int start_to_pos=0;
int position=-1;
while(true){
int index1=indexOf(content,find,start_to_pos);
if(index1!=-1){
start_to_pos=index1+1;
position=index1;
}else{
break;
}
}
return position;
}
public String replaceFirst(String content,String find,String replace){
int index=indexOf(content,find);
if(index==-1){
return content;
}
String part1=substring(content,0,index);
String part2=substring(content,index + find.length(),content.length());
return part1+replace+part2;
}
public String replaceLast(String content,String find,String replace){ int index=lastIndexOf(content,find);
if(index==-1){
return content;
}
String part1=substring(content,0,index);
String part2=substring(content,index + find.length(),content.length());
return part1+replace+part2;
}
/*
* equals replace(String content,String find,String replace)
*/
public String replaceAll(String content,String find,String replace){ String mycontent=content;
if(find.equals(replace)){
return mycontent;
}
while(true){
int index1=indexOf(mycontent,find);
if(index1!=-1){
mycontent=replaceFirst(mycontent,find,replace);
}else{
break;
}
}
return mycontent;
}
/*
* equals replaceAll(String content,String find,String replace)
*/
public String replace(String content,String find,String replace){
return replaceAll(content,find,replace);
}
public String substring(String content,int beginIndex,int endIndex){ int len=endIndex - beginIndex;
if(len==0){
return"";
}
char[]char_content=content.toCharArray();
char[]char_mycontent=new char[len];
for(int i=beginIndex,j=0;j<len;j++,i++){
char_mycontent[j]=char_content[i];
}
String mycontent=new String(char_mycontent);
return mycontent;
}
public String substring(String content,int beginIndex){
return substring(content,beginIndex,content.length());
}
}
/*
测试程序:
public class TestMyString{
public static void main(String args[]){
new TestMyString();
}
public TestMyString(){
MyString ms=new MyString();
System.out.println(ms.substring("hello",0));
System.out.println(ms.substring("hello",0,5));
System.out.println(ms.substring("hello",0,4));
System.out.println(ms.indexOf("hello","ll"));
System.out.println(ms.indexOf("hello","l",2));
System.out.println(ms.indexOf("hello","l",3));
System.out.println(ms.indexOf("hello","l"));
System.out.println(stIndexOf("hello","l"));
System.out.println(ms.replace("hello","ll","**"));
System.out.println(ms.replace("hello","ll",""));
System.out.println(ms.replaceFirst("hello","l","*"));
System.out.println(ms.replaceLast("hello","l","*"));
System.out.println(ms.replaceAll("hello","l","*"));
}
}
测试结果:
hello
hello
hell
2
2
3
2
3
he**o
heo
he*lo
hel*o
he**o
*/。

相关主题