4个回答
展开全部
按照你的意思没用replaceAll ,但很奇怪你为什么不用,这样自己写超级麻烦的。
你看下是不是你需要的,希望采纳!
public class StringTest {
/**
* <一句话功能简述> <功能详细描述>
*
* @param args
* @see [类、类#方法、类#成员]
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = "aabbccbb";
String b = "bb";
String c = "eeee";
while (true) {
int num = a.indexOf(b);
if (num != -1) {
char a_cahr[] = a.toCharArray();
int count = 0;
a = "";
for (int i = 0; i < a_cahr.length; i++) {
if (i >= num && i < num + b.length()) {
if (count == 0) {
a += c;
}
count++;
} else {
a += a_cahr[i];
}
}
} else {
System.out.println("替换后的结果:"+a);
return;
}
}
}
}
你看下是不是你需要的,希望采纳!
public class StringTest {
/**
* <一句话功能简述> <功能详细描述>
*
* @param args
* @see [类、类#方法、类#成员]
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = "aabbccbb";
String b = "bb";
String c = "eeee";
while (true) {
int num = a.indexOf(b);
if (num != -1) {
char a_cahr[] = a.toCharArray();
int count = 0;
a = "";
for (int i = 0; i < a_cahr.length; i++) {
if (i >= num && i < num + b.length()) {
if (count == 0) {
a += c;
}
count++;
} else {
a += a_cahr[i];
}
}
} else {
System.out.println("替换后的结果:"+a);
return;
}
}
}
}
展开全部
您好 ,我的是C++版本希望楼主采纳
char * replaceAll(char *value,char * old,char *news){
char *ch=new char[1000];
int value_size=strlen(value);
int old_size=strlen(old);
int new_size=strlen(news);
char oneChar=old[0];
int newIndex=-1;
int x=0;
bool isEquals=false;
for (;x<value_size;)
{
isEquals=false;
char valueChar=value[x];
//找到第一个与字符串相等
if(valueChar==oneChar){
isEquals=true;
int index=0;
for (int y=x,size=x+old_size-1;y<=size&&size<value_size;y++)
{
char ch=value[y];
char oldChar=old[index++];
if(oldChar!=ch){
isEquals=false;
break;
}
}
}
//若果找到了要替代的字符
if (isEquals)
{
for (int j=0;j<new_size;j++)
{
char nchar=news[j];
ch[++newIndex]=nchar;
}
x+=old_size;
}
else if(!isEquals) {
ch[++newIndex]=valueChar;
x++;
}
}
ch[newIndex+1]='\0';
return ch;
}
char * replaceAll(char *value,char * old,char *news){
char *ch=new char[1000];
int value_size=strlen(value);
int old_size=strlen(old);
int new_size=strlen(news);
char oneChar=old[0];
int newIndex=-1;
int x=0;
bool isEquals=false;
for (;x<value_size;)
{
isEquals=false;
char valueChar=value[x];
//找到第一个与字符串相等
if(valueChar==oneChar){
isEquals=true;
int index=0;
for (int y=x,size=x+old_size-1;y<=size&&size<value_size;y++)
{
char ch=value[y];
char oldChar=old[index++];
if(oldChar!=ch){
isEquals=false;
break;
}
}
}
//若果找到了要替代的字符
if (isEquals)
{
for (int j=0;j<new_size;j++)
{
char nchar=news[j];
ch[++newIndex]=nchar;
}
x+=old_size;
}
else if(!isEquals) {
ch[++newIndex]=valueChar;
x++;
}
}
ch[newIndex+1]='\0';
return ch;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个真有点蛋疼,有方法不用还要自己重写,都不符合JAVA语言特色
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询