
public class TestNewString {
public static void main(String[] args){
String str = "address";
String newStr = oldToNew(str,"a","Abb");
System.out.println(newStr);
}
static String oldToNew(String str,String oldString,String newString){
//判断新字符串的长度。
int newLen; //新字符串长度;
String newStr = null;//新字符串;
/**
* 计算新字符串的长度;
*/
if(oldString.length() >= newString.length()){
newLen = str.length() - (oldString.length() - newString.length());
}else{
newLen = str.length() + (newString.length() - oldString.length());
}
/**
* 将旧字符串中要替换的部分换位新字符串;
*/
for(int i = 0;i < str.length();i++){
int startNum = i;//开始替换的位置
int endNum = startNum + newString.length();//替换的长度
int endN = startNum + oldString.length();//替换完后开始拼接原字符串的位置
/**
* 通过比较获取要替换的部位;
*/
char[] ch = new char[oldString.length()];
for(int j = 0;j < oldString.length();j++){
ch[j] = str.charAt(j + i);
}
String s = new String(ch);
/**
* 如果有与要替换的字符串相同的字符串则实现替换
*/
if(s.equals(oldString)){//判断原字符串中是否含有目标字符串
//实现替换
char newCh[] = new char[newLen];//新字符串中的元素
for(int m = 0;m < newLen;m++){
for(int b = 0;b < newString.length();b++){
if(m < startNum){
newCh[m] = str.charAt(m);
}else if(m == startNum){
newCh[m] = newString.charAt(b);
if(startNum < endNum){
startNum++;
}
}else{
newCh[m] = str.charAt(endN);
if(endN < str.length()){
endN++;
}
}
}
}
newStr = new String(newCh);
}else{
newStr = str;
}
}
return newStr;
}
}
public static void main(String[] args){
String str = "address";
String newStr = oldToNew(str,"a","Abb");
System.out.println(newStr);
}
static String oldToNew(String str,String oldString,String newString){
//判断新字符串的长度。
int newLen; //新字符串长度;
String newStr = null;//新字符串;
/**
* 计算新字符串的长度;
*/
if(oldString.length() >= newString.length()){
newLen = str.length() - (oldString.length() - newString.length());
}else{
newLen = str.length() + (newString.length() - oldString.length());
}
/**
* 将旧字符串中要替换的部分换位新字符串;
*/
for(int i = 0;i < str.length();i++){
int startNum = i;//开始替换的位置
int endNum = startNum + newString.length();//替换的长度
int endN = startNum + oldString.length();//替换完后开始拼接原字符串的位置
/**
* 通过比较获取要替换的部位;
*/
char[] ch = new char[oldString.length()];
for(int j = 0;j < oldString.length();j++){
ch[j] = str.charAt(j + i);
}
String s = new String(ch);
/**
* 如果有与要替换的字符串相同的字符串则实现替换
*/
if(s.equals(oldString)){//判断原字符串中是否含有目标字符串
//实现替换
char newCh[] = new char[newLen];//新字符串中的元素
for(int m = 0;m < newLen;m++){
for(int b = 0;b < newString.length();b++){
if(m < startNum){
newCh[m] = str.charAt(m);
}else if(m == startNum){
newCh[m] = newString.charAt(b);
if(startNum < endNum){
startNum++;
}
}else{
newCh[m] = str.charAt(endN);
if(endN < str.length()){
endN++;
}
}
}
}
newStr = new String(newCh);
}else{
newStr = str;
}
}
return newStr;
}
}