替换没有内置函数的函数Java
可能是一个愚蠢的问题,但我已经搜索了又搜索,似乎找不到一种方法,可以使用for循环替换字符串中的子字符串,而不是内置java函数,如replace、replaceAll等。我曾尝试创建自己的函数,但最终得到了大约4个for循环,但最终没有成功。你知道如何创建一个带有循环的替换函数而不是内置的替换函数吗 我添加了我的代码,试图让大家了解我正在使用的变量替换没有内置函数的函数Java,java,Java,可能是一个愚蠢的问题,但我已经搜索了又搜索,似乎找不到一种方法,可以使用for循环替换字符串中的子字符串,而不是内置java函数,如replace、replaceAll等。我曾尝试创建自己的函数,但最终得到了大约4个for循环,但最终没有成功。你知道如何创建一个带有循环的替换函数而不是内置的替换函数吗 我添加了我的代码,试图让大家了解我正在使用的变量 public boolean replaceString(String oldString, String newString){
public boolean replaceString(String oldString, String newString){
String D = "xx";
char[] find = "BC".toCharArray();
char[] replace ="ABCDE".toCharArray();
String rep = new String(replace);
String fin = new String(find);
String E ="";
String F = "";
for(int counter = 0; counter<replace.length; counter++){
if(find[counter] == replace[counter]){
for(int j=counter+1; j<counter; counter++){
E += rep.charAt(j);
for(int h=j+1; h<j; h++){
if(find[h] == replace[h]){
for(int k=h+1; k<h; k++){
F += rep.charAt(k);
}
}
}
}
}
}
String finReplace = new String(E + D + F);
System.out.println("REPLACE");
System.out.println(finReplace);
提前谢谢 我希望这是作业。所以给你伪代码。 `
}再次查看您的代码。当计数器为2时,下面的将抛出ArrayIndexOutOfBoundException
if(find[counter] == replace[counter])
以下循环将永远不会执行,并且j被初始化为计数器+1,但运行循环的条件是j应小于计数器
for(int j=counter+1; j<counter; counter++)
内环也是如此
for(int h=j+1; h<j; h++)
我想这可能会帮助你:
StringBuilder replacedString = new StringBuilder();
for(int counter = 0; counter<replace.length; counter++){
boolean charFound = false;
for(int j=0; j<find.length; j++){
if(find[j]==replace[counter])
charFound = true;
}
if(!charFound)
replacedString.append(replace[counter]);
}
System.out.println("Replaced string" + replacedString.toString());
为什么你的方法返回布尔值?用例是什么?replaceString应该得到3个参数,原始字符串,搜索字符串和替换字符串。它基本上是用于实践的,我使用布尔返回的唯一原因是,这样我可以在之后对字符串执行测试,以确定替换是否成功。相反,您应该返回替换的字符串,然后进行比较。你可以使用我提供的方法。非常感谢!更清楚的是,如果我要在新的字符串生成器中添加额外的字母,我是要在替换的字符串中创建另一个附加,还是可以在原始的append方法中添加它@GV如果我理解正确,你想在ABCDE中找到BC并用XX替换它吗?
StringBuilder replacedString = new StringBuilder();
for(int counter = 0; counter<replace.length; counter++){
boolean charFound = false;
for(int j=0; j<find.length; j++){
if(find[j]==replace[counter])
charFound = true;
}
if(!charFound)
replacedString.append(replace[counter]);
}
System.out.println("Replaced string" + replacedString.toString());