标题:[讨论]如何用HashTable处理String
取消只看楼主
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
 问题点数:0 回复次数:3 
[讨论]如何用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;
}


用这种方法处理的话过程比较简单
原理也比较好理解
但是问题在于如果以后要替换的字增加
那么我必须修改代码
不停的在程序里增加CASE语句
这显然与现代高效率开发 低成本维护的原则有悖
后来经理告诉我可以考虑用HashTable的方法来处理可以更快
但是没有告诉我相关方面的知识
因此只有靠自己了
于是我就来到了论坛
请对这方面比较了解的各位仁兄不另赐教

[此贴子已经被作者于2006-7-18 10:37:55编辑过]

搜索更多相关主题的帖子: String HashTable 
2006-07-18 10:37
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
得分:0 
读的不是很明白
麻烦楼上的给加点注释吧

[此贴子已经被作者于2006-7-18 12:36:53编辑过]


此号自封于2006年11月30日
2006-07-18 12:15
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
得分:0 

读的差不多了
我把你的做成一个类了
我想问的是
传参string[]类型的数如何操作比较简单点
目前我按照下面的代码跑是不是太笨了点袄

string[]tempStrArray=new string [1];
string[]tempNewArray=new string [1];
tempStrArray[0]="我";
tempNewArray[0]="wo";

WordsChange wc=new WordsChange ();
wc.addone(tempStrArray,tempNewArray);
string returnStr=wc.newstring("我们");

[此贴子已经被作者于2006-7-18 12:54:41编辑过]


此号自封于2006年11月30日
2006-07-18 12:47
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
得分:0 

哈哈
我说自己为什么一直编程没有长进呢
咋就不知道重载一个呢
哎 猪脑啊
没有发散思维
不过还是谢过了

总结了一下:
刚开始我采用的那种方法适合初学者
因为比较好理解而且一般不牵扯到维护和移植的问题
用的还是面向过程的思想

后面chenjin145仁兄写的比较现代化
便于以后移植扩充之用
而且是面向对象的思想

再次感谢


此号自封于2006年11月30日
2006-07-18 13:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-78946-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056196 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved