[讨论]如何用HashTable处理String
假如我有一个字符串 tempStr="Hello ! 小明";如果我不想要汉字 那么就应该扫描 tempStr 把它换为 "Hello! XiaoMing"
这样的话原来的字符串长度就会变动
如果用传统语言处理起来比较困难
因为对于变动的东西总是那么难以让人把握
但是前段学会了用ArrayList处理这个就比较简单了
下面这个方法就是处理字符串过程
public string WordsConvert()
{
ArrayList tempList=new ArrayList ();
string tempStr=string.Empty ;
for(int i=0;i<messageIn.Length ;i++)
{
switch(messageIn[i])
{
case '小':
tempList.Add ("Xiao");
break;
case '明':
tempList.Add("Ming");
break;
default:
tempList.Add (messageIn[i]);
break;
}
}
for(int i=0;i<tempList.Count ;i++)
{
tempStr+=tempList[i].ToString ();
}
messageOut=tempStr.ToCharArray ();
return tempStr;
}
{
ArrayList tempList=new ArrayList ();
string tempStr=string.Empty ;
for(int i=0;i<messageIn.Length ;i++)
{
switch(messageIn[i])
{
case '小':
tempList.Add ("Xiao");
break;
case '明':
tempList.Add("Ming");
break;
default:
tempList.Add (messageIn[i]);
break;
}
}
for(int i=0;i<tempList.Count ;i++)
{
tempStr+=tempList[i].ToString ();
}
messageOut=tempStr.ToCharArray ();
return tempStr;
}
用这种方法处理的话过程比较简单
原理也比较好理解
但是问题在于如果以后要替换的字增加
那么我必须修改代码
不停的在程序里增加CASE语句
这显然与现代高效率开发 低成本维护的原则有悖
后来经理告诉我可以考虑用HashTable的方法来处理可以更快
但是没有告诉我相关方面的知识
因此只有靠自己了
于是我就来到了论坛
请对这方面比较了解的各位仁兄不另赐教
[此贴子已经被作者于2006-7-18 10:37:55编辑过]