社区
C#
帖子详情
C#字符串string运行效率的问题
handi
2004-08-17 10:23:09
字节 b[7000] , 首先每个字节求异或,然后相加到一个字符串:
str = "";
for (int i=0;i<7000;i++)
str += ... byte[i] ^ bt_key.....
可是速度非常慢,请问有什么好的办法吗? 谢谢
...全文
293
13
打赏
收藏
C#字符串string运行效率的问题
字节 b[7000] , 首先每个字节求异或,然后相加到一个字符串: str = ""; for (int i=0;i<7000;i++) str += ... byte[i] ^ bt_key..... 可是速度非常慢,请问有什么好的办法吗? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lexchou
2004-08-17
打赏
举报
回复
To btut2004:
0xFA的F和A都在闭区间[0x0,0xF]中间,一共有16个,二进制分布分别从 0000到1111
0xFA的二进制是11111010
0xFA >>4后就将前4位移到后4位来了,成了 1111
而0xFA & 0xF 就是 11111010 & 1111 =1010了:
11111010
AND 00001111
____________
00001010
所以就这样将前后4位分开了
pipibug
2004-08-17
打赏
举报
回复
lexchou强!
起名叫周lex看来是对字处理方面很自信的周
onlyxu
2004-08-17
打赏
举报
回复
用StringBuilder
handi
2004-08-17
打赏
举报
回复
这段代码是我从C++炒得。C++的运行速度很快的
张海霖
2004-08-17
打赏
举报
回复
看来我要好好补习一下了,不忙的时候我会再看的,现在还无法理解。
lexchou
2004-08-17
打赏
举报
回复
例如tmp为 0xFA
tmp>>4后就等于 0xF了,在HEX_TABLE中第0xF位的是字符 'F'
tmp & 0xf后就等于 0xA了,在HEX_TABLE中第0xA位的字符是'A'
所以这样就完成了Byte -> String的快速转换了
张海霖
2004-08-17
打赏
举报
回复
sb[idx++]=HEX_TABLE[tmp >>4];//你右移它想达到什么目的
sb[idx++]=HEX_TABLE[tmp & 0xf];//执行与操作干什么?
iiboy
2004-08-17
打赏
举报
回复
嗯!
像這樣的處理,也許不會有很大的改進之處吧,除非有更快速的CPU與更多的Memory
lexchou
2004-08-17
打赏
举报
回复
bt_key是从他的代码里抄的。
看他代码,应该是XOR加密。bt_key应该是byte类型的密钥(key)
张海霖
2004-08-17
打赏
举报
回复
学习,看不懂,bt_key是什么?
能具体讲一下吗?
lexchou
2004-08-17
打赏
举报
回复
const string HEX_TABLE="0123456789ABCDEF";
StringBuilder sb=new StringBuilder();
sb.SetLength(7000*2);
byte tmp;
int idx=0;
for(int i=0;i<7000;i++)
{
tmp=byte[i]^bt_key;
sb[idx++]=HEX_TABLE[tmp >>4];
sb[idx++]=HEX_TABLE[tmp & 0xf];
}
MessageBox.Show(sb.ToString());
改用这种方法,效率可以极大提升
lexchou
2004-08-17
打赏
举报
回复
对于你问题的解决方法,可以用StringBuilder来代替String。例如可以先分配好长度,然后在通过索引来访问每个字符。或者用Append方法来添加
lexchou
2004-08-17
打赏
举报
回复
http://community.csdn.net/Expert/TopicView.asp?id=3233892
Java的string、StringBuffer、C++(C++ Builder)的AnsiString、STL String、Delphi的String和汇编写的类StringBuilder、C#的StringBuilder、C#的String
的详细比较
C#
中
String
与
String
Builder性能差异的原因详解
本文详细解析了
C#
语言中
String
类型的特性,特别是Copy-On-Write技术的应用,以及如何在实际编程中高效地使用
String
Builder类替代原始的
String
类,特别是在需要频繁操作
字符串
的情况下。
C#
基础——
String
和
String
Builder
效率
测试
本文探讨了
C#
中
String
和
String
Builder的底层差异,并通过实际测试展示了在频繁
字符串
操作时
String
Builder的
效率
优势。文章包含测试方法、核心代码、结果展示及详细分析。
C#
中
string
类型的常用方法总结
本文详细介绍了
C#
中
String
类的各种方法,包括
字符串
复制、比较、查找、截取等操作,以及
字符串
拘留池机制的工作原理。
C#
中
string
.contains和
string
.indexof的
效率
比较
本文通过实测对比了
C#
中的
string
.Contains和
string
.IndexOf方法在处理大数据时的
效率
,发现Contains明显优于IndexOf。原因在于Contains内部调用的IndexOf方法使用了
String
Comparison.Ordinal比较类型,这在
效率
上比使用当前文化信息的比较类型要高。
C#
中的
字符串
,
String
类和
String
Builder类
本文介绍了
C#
中处理
字符串
的两种主要方式:
String
类和
String
Builder类。
String
类不可变,适合简单操作,而
String
Builder类可变,适用于频繁修改
字符串
的情况。文中详细讲解了
String
类的创建、常用方法,如Split和Join,以及
字符串
比较。此外,还深入探讨了
String
Builder类的构造、属性和修改方法,以及在性能上的优势。最后通过性能测试对比了
String
和
String
Builder在大量操作时的
效率
差异。
C#
111,129
社区成员
642,531
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章