快速开贴揭帖,求一个简单的字符串处理算法

神奇的章鱼哥 2007-10-12 04:09:34
源字符串str1,str2
需要处理str2,将前面位数与内容与str1相同的省略掉

说不清楚看例子:
str1:ABCDE str2:ABXX -------需要XX,AB被省略了
str2:ABCDE str2:ABCX -------需要X,ABC被省略了
str1:ABCDE str2:XABXX -------需要XABXX,前面没有相同的内容,不省略

快速揭帖,尽量简单,最好一个句子就搞定
...全文
80 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
神奇的章鱼哥 2007-10-12
  • 打赏
  • 举报
回复
现在有点事情,等会测试,先揭帖吧,相信两位都是测试正确才贴出来的,谢谢
publina 2007-10-12
  • 打赏
  • 举报
回复
运行结果:
XX
X
XABXX
publina 2007-10-12
  • 打赏
  • 举报
回复

protected void Page_Load(object sender, EventArgs e)
{


Response.Write(RemoveStr1("ABCDE", "ABXX") + "<BR>");
Response.Write(RemoveStr1("ABCDE", "ABCX") + "<BR>");
Response.Write(RemoveStr1("ABCDE", "XABXX") + "<BR>");
}

private string RemoveStr1(string str1, string str2)
{
int str1Length = str1.Length;
int str2Length = str2.Length;
int forLength = (str1Length > str2Length) ? str2Length : str1Length;
for (int i = 0; i < forLength; i++)
{
string str1Temp = str1.Substring(0, 1);
string str2Temp = str2.Substring(0, 1);

if (str1Temp == str2Temp)
{
str1 = str1.Substring(1, str1.Length - 1);
str2 = str2.Substring(1, str2.Length - 1);
}

}

return str2;
}
hzg_1998 2007-10-12
  • 打赏
  • 举报
回复
string str1="ABCDE", str2="ABXX";
StringBuilder sb = new StringBuilder(str2);
int len = Math.Min(str1.Length, str2.Length);
for (int i = 0; i < len; i++)
{
if(str1[i].Equals(str2[i]))
{
sb.Remove(0, 1);
}
}
MessageBox.Show(sb.ToString());
神奇的章鱼哥 2007-10-12
  • 打赏
  • 举报
回复
蟑螂好

另外如果
str1:ABCDE str2:CDXX 是什么?

还是CDXX,因为从左边开始没有一样的
神奇的章鱼哥 2007-10-12
  • 打赏
  • 举报
回复
这么明白的例子还不明白意思啊,我以前写好的,只是现在在外地出差,忘记当初怎么写的了

str1:ABCDE str2:ABXX -------需要XX,AB被省略了 (两个AB一样,省略了)
str2:ABCDE str2:ABCX -------需要X,ABC被省略了 (两个ABC一样,省略了)
str1:ABCDE str2:XABXX -------需要XABXX,前面没有相同的内容,不省略
lovefootball 2007-10-12
  • 打赏
  • 举报
回复
一个句子搞不定

另外如果
str1:ABCDE str2:CDXX 是什么?
suifengoffice 2007-10-12
  • 打赏
  • 举报
回复
不明白什么意思

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧