string a;
string b;
假如a="abcdefg",b="bcde"
判断如果b属于a,则b倒序排列一下,然后替换b在a中的位置输出一段新的字符串例如 初始化a="abcdefg",b="bcde"
通过调用一个方法输出a="aedcbfg"不能使用indexof()和replace()方法
string b;
假如a="abcdefg",b="bcde"
判断如果b属于a,则b倒序排列一下,然后替换b在a中的位置输出一段新的字符串例如 初始化a="abcdefg",b="bcde"
通过调用一个方法输出a="aedcbfg"不能使用indexof()和replace()方法
依次比较然后替换
类似重写indexof和replasce方法
既然不能使用indexof()和replace()方法,那就用数组做
if (a.Contains(b))
a = a.Replace(b, new string(b.ToCharArray().Reverse().ToArray()));
string MyReplace(string a, string b)
{
int index = -1;
for (int i = 0; i < a.Length; i++)
{
if (a[i] == b[0])
{
bool exsits = true;
for (int j = 1; j < b.Length; j++)
{
if (a[i + j] != b[j])
exsits = false;
}
if (exsits)
{
index = i;
break;
}
}
}
if (index == -1)
return a;
char[] cs = new char[a.Length];
for (int i = 0; i < a.Length; i++)
{
if (i >= index && i < index + b.Length)
cs[i] = b[b.Length - 1 - (i - index)];
else
cs[i] = a[i];
}
return new string(cs);
}
string StrReplace(string a, string b)
{
string returnValue = string.Empty;
for (int i = 0; i < a.Length - b.Length; i++)
{
if (a.Substring(i, b.Length) == b)
{
char[] newArray = b.ToCharArray();
Array.Reverse(newArray);
returnValue = a.Remove(i, b.Length).Insert(i, new String(newArray));
}
}
return returnValue;
}
string a="abcdefg";
string b = "bcde";
if (a.Contains(b))
{
int count = b.Length - 1;
char[] chArr = new char[b.Length];
for (int i = 0; i <= count; i++)
{
chArr[i] = b[count - i];
}
int index = a.IndexOf(b);
string resultStr = a.Remove(index,b.Length).Insert(index, new string(chArr));
Response.Write(resultStr);
}
static string MyReplace(string a, string b)
{
return Regex.Replace(a, b, match => { char[] cs = match.Value.ToCharArray(); Array.Reverse(cs); return new string(cs); });
}
{
string a = "abcdefg";
string b = "bcde";
string[] s_a=a.Split(new string[] { b }, StringSplitOptions.RemoveEmptyEntries);
if (s_a.Length > 0)
{
char[] c_b = b.ToCharArray().Reverse().ToArray();
string temp = new String(c_b);
StringBuilder sBuild=new StringBuilder();
for (int i = 0; i < s_a.Length - 1; i++)
{
sBuild.AppendFormat("{0}{1}",s_a[i],temp);
}
sBuild.Append(s_a[s_a.Length-1]);
a = sBuild.ToString();
}
Console.WriteLine(a);
}
string a="abcdefg";
string b = "bcde";
if (a.Contains(b))
{
int count = b.Length - 1;
char[] chArr = new char[b.Length];
for (int i = 0; i <= count; i++)
{
chArr[i] = b[count - i];
} string str = new string(chArr); int index = 0;
for (int i = 0; i < a.Length; i++)
{
if (a[i] == b[0])
{
index = i;
}
}
string resultStr = a.Remove(index,b.Length).Insert(index, new string(chArr));
Response.Write(resultStr);
string b="bcde";
var dest=a.ToCharArray().Intersect(b.ToCharArray()).Reverse();//取出重复的值并且反转
char[] c=b.ToCharArray();
string[] arrstr=a.Split(c);
string news=arrstr[0]+new string(dest.ToArray()) + arrstr[arrstr.Length-1];
Console.WriteLine(news);
{
if (longer.Contains(shorter))
{
char[] l = longer.ToCharArray();
char[] s = shorter.ToCharArray();
char[] sr = new char[s.Length];
int startindex = -1;
for (int i = 0; i < l.Length; i++)//长字符串
{
for (int j = 0; j < s.Length; j++)//短字符串
{
if (l[i] == s[j])//有一位相同,检查余下位数是否相同
{
startindex = i;
int tmp = i+1;
sr[0] = s[s.Length-1];
for (int k = 1; k < s.Length; k++)
{
sr[k] = s[s.Length - 1 - k];
if (l[tmp] != s[k])//非全部相同将继续循环
{
startindex = -1;
sr = new char[s.Length];
break;
}
tmp++;
}
}
break;
}
if (startindex != -1)
break;
} for (int i = 0; i < s.Length; i++)
{
l[startindex + i] = sr[i];
}
return new string(l);
}
return null;
}
不够精简……
static void Main(string[] args)
{
string original1 = "abcdefg";
string original2 = "bcd";
char[] chr2Reverse = original2.ToCharArray();
Array.Reverse(chr2Reverse);
string reverseStr = new String(chr2Reverse);
if (original1.Contains(original2))
{
string[] original1Split = original1.Split(original2.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < original1Split.Length; i++)
{
sb.Append(original1Split[i]);
if (i + 1 < original1Split.Length)
{
sb.Append(reverseStr);
}
}
Console.WriteLine(sb.ToString());
} Console.ReadLine();
}
如果初始化a = "abbaab",b = "ab";
调用方法后是不是输出这样的结果:a = "bbbaaa";
按LZ的意思,正确的结果应该是bababa
string inputa = "abcdef";//输入A
string outputb = string.Empty;//输出
if (inputa.Contains(inputb))
{ string[] strarry = inputa.Split(inputb.ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries);
for (int i = inputb.Length - 1; i >= 0; i--)
{
outputb += inputb.Substring(i, 1);
}
//textBox_OUTPUT.Text = textBox_A.Text.Replace(inputb, outputb);
if (strarry.Length > 1)//B在A中间
{
outputb = strarry[0] + outputb + strarry[1];
}
else if (strarry.Length ==1)//B包含A开头或结尾
{
outputb = strarry[0] + outputb;
}
//B=A,直接输出outputb
}
}
return string.Join(new string(b.Reverse().ToArray()),a.Split(new string[]{b}))
Split()的参数是不是只能字符啊。。