字符串类的设计
定义一个字符串(string)类,包含存放在字符串的字符数组和字符串中字符的个数。
字符串的输入与赋值;
字符串的运算包括:连接,复制,查找,交换,比较
字符串的输出
这是Replace(替换)方法,你仿照它写其它方法把
[ThreadStatic]
static char[] mTempChars;
protected static char[] GetTempData()
{
if (mTempChars == null)
mTempChars = new char[1024 * 64];
return mTempChars;
}
public static string Replace(string value, string oldData, string newData)
{
char[] tmpchars = GetTempData();
int newpostion = 0;
int oldpostion = 0;
int length = value.Length;
int oldlength = oldData.Length;
int newlength = newData.Length;
int index = 0;
int copylength = 0;
bool eq = false;
while (index < value.Length)
{
eq = true;
for (int k = 0; k < oldlength; k++)
{
if (value[index + k] != oldData[k])
{
eq = false;
break;
}
}
if (eq)
{
copylength = index - oldpostion;
value.CopyTo(oldpostion, tmpchars, newpostion, copylength);
newpostion += copylength;
index += oldlength;
oldpostion = index;
newData.CopyTo(0, tmpchars, newpostion, newlength);
newpostion += newlength;
}
else
{
index++;
}
}
if (oldpostion < length)
{
copylength = index - oldpostion;
value.CopyTo(oldpostion, tmpchars, newpostion, copylength);
newpostion += copylength;
}
return new string(tmpchars, 0, newpostion);
}
[ThreadStatic]
static char[] mTempChars;
protected static char[] GetTempData()
{
if (mTempChars == null)
mTempChars = new char[1024 * 64];
return mTempChars;
}
public static string Replace(string value, string oldData, string newData)
{
char[] tmpchars = GetTempData();
int newpostion = 0;
int oldpostion = 0;
int length = value.Length;
int oldlength = oldData.Length;
int newlength = newData.Length;
int index = 0;
int copylength = 0;
bool eq = false;
while (index < value.Length)
{
eq = true;
for (int k = 0; k < oldlength; k++)
{
if (value[index + k] != oldData[k])
{
eq = false;
break;
}
}
if (eq)
{
copylength = index - oldpostion;
value.CopyTo(oldpostion, tmpchars, newpostion, copylength);
newpostion += copylength;
index += oldlength;
oldpostion = index;
newData.CopyTo(0, tmpchars, newpostion, newlength);
newpostion += newlength;
}
else
{
index++;
}
}
if (oldpostion < length)
{
copylength = index - oldpostion;
value.CopyTo(oldpostion, tmpchars, newpostion, copylength);
newpostion += copylength;
}
return new string(tmpchars, 0, newpostion);
}
温馨提示:答案为网友推荐,仅供参考