cz【2017年整理】奥氏体不锈钢TiG焊的焊接工艺评定.doc

上传人:本田雅阁 文档编号:2368903 上传时间:2019-03-24 格式:DOC 页数:32 大小:670.01KB
返回 下载 相关 举报
cz【2017年整理】奥氏体不锈钢TiG焊的焊接工艺评定.doc_第1页
第1页 / 共32页
cz【2017年整理】奥氏体不锈钢TiG焊的焊接工艺评定.doc_第2页
第2页 / 共32页
cz【2017年整理】奥氏体不锈钢TiG焊的焊接工艺评定.doc_第3页
第3页 / 共32页
cz【2017年整理】奥氏体不锈钢TiG焊的焊接工艺评定.doc_第4页
第4页 / 共32页
cz【2017年整理】奥氏体不锈钢TiG焊的焊接工艺评定.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《cz【2017年整理】奥氏体不锈钢TiG焊的焊接工艺评定.doc》由会员分享,可在线阅读,更多相关《cz【2017年整理】奥氏体不锈钢TiG焊的焊接工艺评定.doc(32页珍藏版)》请在三一文库上搜索。

1、奥氏体不锈钢TIG焊的焊接工艺评定设计奥氏体不锈钢TIG焊的焊接工艺评定设计摘要 焊接过程是特殊过程。焊接结果不容易经济地通过检验和试验完全验证,有些问题在设备使用后才曝露出来造成不应有的损失。在产品施焊前就需要确认焊接工艺能否保证焊接接头的使用性能。焊接工艺评定又是制造安装单位的技术资源和技术储备,是焊接技术和焊接质量控制水平和能力的标志,也是获得优良焊接质量的保证。通过焊接工艺评定的研究能更好的了解焊接技术和焊接工艺的特性,掌握焊接工程的内在规律。关键词 焊接工艺评定 一般过程 指导书 评定报告 检测 焊缝引 言在现代生产中,随着社会的进步、生产力的发展对焊接产品的要求越来越高,不锈钢以其

2、耐腐蚀,耐酸等良好的性能得到广泛应用奥氏体不锈钢是应用最广泛的不锈钢,以Gr-Ni型不锈钢最为普遍。目前奥氏体不锈钢大致分为Gr18-Ni8型、Gr25-Ni20型、Gr25-Ni35型。还有广泛开发应用的超级奥氏体不锈钢。本文以1Gr18Ni9Ti钢为例做焊接工艺评定。第一章 焊接工艺评定基本原理1.1 焊接工艺评定的目的焊接工艺评定的目的是验证施焊单位拟定的焊接工艺的正确性,并评定施焊单位能力。1.2焊接工艺评定的一般程序焊接工艺评定的一般过程是:在产品施焊之前,根据材料的焊接性能,结合产品的制造工艺拟定焊接工艺指导书,遵照焊接工艺评定标准施焊试件、制取式样,检查试件和式样,测定焊接接头是

3、否具有所要求的使用性能,提出焊接工艺评定报告,对拟定的焊接工艺指导书进行评定作出结论。根据评定合格的焊接工艺指导书,可以编制出在它覆盖范围内若干焊接工艺规程,规范生产单位的制造安装焊接工作。若评定不合格,则应分析不合格原因,修订焊接工艺指导书,重新评定。1.3 焊接性能是焊接工艺评定基础1.3.1 焊接性能试验目的、作用和方法焊接性能是金属材料对焊接加工的适应性。即材料在限定的施工条件下焊接符合设计要求的构建,并满足预定服役要求的能力。焊接性能受材料、焊接方法、构件类型及使用要求四个因素的影响。焊接性能试验包括焊接工艺性能试验和焊接接头使用性能试验。焊接工艺性能试验主要指焊接裂纹敏感性试验、焊

4、接气孔敏感性试验;焊接接头使用性能包括力学性能、耐腐蚀性能、抗疲劳性能、抗脆断性能。通过焊接性能试验可以了解焊接方法、焊接工艺对金属材料的适应性;了解焊接材料的匹配性;可以合理地选择焊接工艺参数。焊接裂纹敏感性试验可分为间接法和直接法两大类。做焊接性能试验时要根据金属材料的特点,要有针对性。奥氏体不锈钢从凝固到冷却至室温都保持奥氏体组织,不发生马氏体转变,没有冷裂纹倾向。对奥氏体不锈钢不做热影响区最高硬度试验或Y形坡口焊接裂纹试验。第2章 奥氏体不锈钢TIG焊的焊接工艺评定理论基础2.1对接焊缝、角焊缝的焊接工艺评定2.1.1 评定对接焊缝工艺时,采用对接焊缝试件。对接焊缝试件评定合格的焊接工

5、艺亦适用于角焊缝。试件形式示意图1。. 图1 焊接工艺评定试件形式2.1.2 管与板角焊缝试件评定合格的焊接工艺适用于板材的角焊缝,反之亦可。板材对接焊缝试件评定合格的焊接工艺适用于管材的对接焊缝,反之亦可。2.1.3焊接工艺因素焊接工艺评定因素分为重要因素、补加因素和次要因素 重要因素是指影响焊接接头力学性能(冲击韧性除外)的焊接工艺因素。 补加因素是指影响焊接接头冲击韧性的焊接工艺因素。当规定进行冲击试验时,需增加补加因素。 次要因素是指对要求测定的力学性能无明显影响的焊接工艺因素。 表1 奥氏体不锈钢TIG焊的焊接工艺评定因素因素种类焊接工艺评定因素的主要内容重要因素药芯焊丝牌号(只考虑

6、类别代号后头两位数字)、焊丝钢号、增加或取消填充金属、实心焊丝改为药芯焊丝或相反、预热温度比已评定合格值低50以上、保护气体种类、混合保护气体配比、补加因素从已评定合格的焊接位置改变为向上立焊、电流种类和极性、增加线能量次要因素坡口形式、在同组别号内选择不同钢号做电板、坡口根部间隙、增加钢垫板、填充金属横截面积、焊接位置、改变尾部保护气体、保护气体流量、电流种类和极性、电流值和电压值、乌极的直径和种类、不摆动或摆动焊、乌极间距、喷嘴尺寸2.1.4. 评定规则2.1.4.1 焊接方法 改变焊接方法,需要重新评定焊接工艺 。2.1.4.2 各种焊接方法的焊接工艺评定重要因素、补加因素和次要因素 1

7、)当变更任何一个重要因素时都需要重新评定焊接工艺。 2)当增加或变更任何一个补加因素时,则可按增加或变更的补加因素增焊冲击韧性试件进行试验。 3)当变更次要因素时不需要重新评定焊接工艺,但需要重新编制焊接工艺指导书。2.1.4.3 当同一条焊缝使用两种或两种以上焊接方法或重要因素、补加因素不同的焊接工艺时,可按每种焊接方法或焊接工艺分别进行评定;亦可使用两种或两种以上焊接方法、焊接工艺试件,进行组合评定。 组合评定合格后用于焊件时,可以采用其中一种或几种焊接方法、焊接工艺,但应保证其重要因素、补加因素不变,按相关条款确定每种焊接方法或焊接工艺适用于焊件厚度的有效范围。2.1.5热处理改变焊后热

8、处理类别,需重新评定焊接工艺。除气焊外,当规定进行冲击试验时,焊后热处理的保温温度范围或保温时间范围改变后要重新评定焊接工艺。试件的焊后热处理应与焊件在制造过程中的焊后热处理基本相同,低于下转变温度进行焊后热处理时,试件保温时间不得少于焊件在制造过程中累计保温时间的80%。 奥氏体钢的使用温度高于或等于196时,可免做冲击试验,一般不热处理。2.1.6试件厚度和焊件厚度评定合格的对接焊缝试件的焊接工艺适用于焊件厚度的有效范围:表2 试件焊缝金属厚度与焊件焊缝金属厚度规定 mm表3 试件厚度与焊件厚度规定 mm1) 对接焊缝试件评定合格的焊接工艺用于角焊缝焊件时,焊件厚度的有效范围不限。2) 组

9、合评定合格后,当作单一焊接方法(或焊接工艺)分别评定来确定适用于焊件母材的厚度有效范围。3) 本次设计使用的奥氏体母材厚度为 1.5T102.1.7.试件制备母材、焊接材料、坡口和试件的焊接必须符合焊接工艺规程的要求。 试件的数量和尺寸应满足制备试样的要求,试样也可以直接在焊件上切取。 对接焊缝试件尺寸:试件厚度应充分考虑适用于焊件厚度的有效范围。 角焊缝试件尺寸见表4和图2、图3。表4 板材角焊缝试件尺寸 mm图2 板材角焊缝试件及试样图3 管材角焊缝试件2.1.8 对接焊缝试件和试样的检验2.1.8.1 试件检验项目:外观检查、无损检测、力学性能试验。 外观检查和按 JB4730 进行无损

10、检测结果不得有裂纹。 2.1.8.2 力学性能试验项目包括拉伸试验、夏比 V 型缺口冲击试验(当规定时)和弯曲试验。 a) 力学性能试验项目和取样数量应符合表 5 的规定。 b) 当试件采用两种或两种以上焊接方法(或焊接工艺)时: 拉伸试样和弯曲试样的受拉面应包括每一种焊接方法(或焊接工艺)的焊缝金属和热影响区; 当规定做冲击试验时,对每一种焊接方法(或焊接工艺)的焊缝区和热影响区都要做冲击试验。 表 5 力学性能和弯曲性能试验项目和取样数量 2.1.8.3 力学性能试验的取样要求: a) 取样时,一般采用冷加工方法,当采用热加工方法取样时,则应去除热影响区。 b) 试件允许避开缺陷制取试样,

11、取样位置按规定。 c) 试样去除焊缝余高前允许对试样进行冷校平。 d) 板状对接焊缝试件上试样取样位置见图 4。 图4 板材对接焊缝试件上试样位置图2.1.8.4 拉伸试验2.1.8.4.1 取样和加工要求 a) 试样的焊缝余高应以机械方法去除,使之与母材齐平。试样厚度应等于或接近试件母材厚度 T。 b) 厚度小于或等于 30mm 的试件,采用全厚度试样进行试验。 c) 当试验机受能力限制不能进行全厚度的拉伸试验时,则可将试件在厚度方向上均匀分层取样,等分后制取试样厚度应接近试验机所能试验的最大厚度。等分后的两片或多片试样试验代替一个全厚度试样的试验。 2.1.8.4.2 试样形式紧凑型板接头

12、带肩板形试样(见图 5)适用于所有厚度板状的对接焊缝试件。图5 紧凑型板接头带肩板形拉伸试样2.1.8.4.3合格指标试样的抗拉强度应不低于母材标准规定值的下限值。2.1.8.5 弯曲试验2.1.8.5.1 试样加工要求 试样的焊缝余高应采用机械方法去除,面弯、背弯试样的拉伸表面应加工齐平,试样受拉伸表面不得有划痕和损伤。 2.1.8.5.2 试样形式a) 横向侧弯试样见图6。图6 横向侧弯试样 b) 面弯和背弯试样见图 7。 试件厚度 T 为 1038mm ,试样宽度等于试件厚度。 图7 面弯和背弯试样2.1.8.5.3 合格指标试样在弯曲到规定的角度后,其拉伸面上沿任何方向不得有单条长大于

13、3mm的裂纹和缺陷。试样的棱角开裂一般不记。2.1.8.6 冲击试验 2.1.8.6.1 试样 a) 试样取向:试样纵轴应垂直于焊缝轴线,缺口轴线垂直于母材表面。 b) 取样位置;在试件厚度上的取样位置见图 8。 c) 缺口位置:焊缝区试样的缺口轴线应位于焊缝中心线上。 热影响区试样的缺口轴线至试样轴线与熔合线交点的距离大于零,且应尽可能多的通过热影响区。 图8 冲击试样位置图 2.1.8.6.2 合格指标 焊接接头每个区 3 个试样为一组的常温的冲击吸收功平均值应符合图样或相关技术文件规定,且不得小于 27J,至多允许有 1 个试样的冲击吸收功低于规定值,但不低于规定值的 70%。 2.1.

14、8.7 角焊缝试件和试样的检验检验项目:外观检查,金相检验(宏观)外观检验不得有裂纹。金项检验焊缝根部应焊透,焊缝和热影响区不得有裂纹、未熔合;角焊缝两焊脚之差不宜大于3mm。 第3章 奥氏体不锈钢TIG焊的焊接工艺评定焊 接 工 艺 评 定编号: HP001评定单位:德州职业技术学院评定日期: 2010年12月焊接工艺评定任务书任务书编号HR001工艺评定编号HP001产品名称制造编号级别母 材板 材管 材焊 材焊 条焊 丝焊 剂牌号1Gr18Ni9Ti型号H0Gr21Ni10Ti规格8规格2;2.5;2.5接头型式对接焊接方法TiG焊焊接位置水平对接焊预热和焊后热处理要求无评定标准钢制产品

15、焊接试板的力学性能检测焊缝结构示意图设计压力设计温度工作介质备注要求检验项目外观检查无损探伤射线()、超声( )、表面( )力 学 及 弯 曲 性 能 试 验项 目拉 伸弯 曲冲 击试样数量焊接接头全焊缝面弯背弯侧弯焊缝热影响区22222宏观金相微观金相其他项目编 制日 期审 核日 期焊接工艺评定指导书任务书编号HR001工艺评定编号HP001第1页产品名称制造编号共2页母材板材管材垫板焊丝牌号、规格底层中间层面层牌号1Gr18Ni9Ti2;2.522.52.5规格8分类号未列入标准的钢材或国外钢材接头型式对接化学成分焊接方法TiG焊焊接位置水平对接焊试件规程机械性能清根方法坡口、间隙、焊道分

16、布及顺序示意图焊前予热加 热方 式温 度范 围层 间温 度测 温方 法焊后热处理种 类加热方式温 度范 围保 温时 间冷 却方 式测 温方 法说明:其他工艺要求执行编制的通用焊接工艺守则特殊要求:焊 接 工 艺 参 数第2页共2页焊层序号焊道数量焊丝牌号焊材规格mm焊 接电 源焊 接电 流A电 弧电 压V焊 接速 度cm/min气体流量L/min线能量KJ/cm种类极性11H0Gr21Ni10Ti2直流正接9010012165821H0Gr21Ni10Ti2.5直流正接11012012165831H0Gr21Ni10Ti2.5直流正接100110121669施焊设备型号WS400检验项目执行标

17、准检验项目执行标准外观检查目测冲击试验(常温、低温)JB4744无损探伤金相检验拉伸试验JB4744弯曲试验JB4744备注试件做断面检查,断面无无气孔、未熔合、未焊透为合格编制日期审核日期焊 接 工 艺 评 定 报 告编号: HP001评定单位:德州职业技术学院评定日期: 2010年12月工艺评定(报告)编号HP001通用焊接工艺卡编号HK001第1页试 件 编 号HS001相应工艺指导书编号HZ001共3页接头型式对接焊接方法埋弧自动焊焊接位置水平母材板材管材垫板焊 丝底 层中间层面层牌号1Gr18Ni9TiH0Gr21Ni10Ti22.52.5规格8代号坡口、间隙、焊道分布及顺序示意图烘

18、干温度恒温时间记录人日期焊条烘干焊剂烘干清根方法未列入标准钢材或国外钢材焊前予热加 热方 式温度范围层间温度测温方法化学成分焊后热处理种类加热方式温度范围保温时间h冷 却方 式测 温方 法机械性能报告编号:焊 接 工 艺 参 数第2页 共3页焊层序号焊道数量焊丝牌号焊材规格mm焊 接电 源焊 接电 流A电 弧电 压V焊 接速 度cm/min气体流量L/min线能量KJ/cm种类极性11H0Gr21Ni10Ti2直流正接9010012165821H0Gr21Ni10Ti2.5直流正接11012012165831H0Gr21Ni10Ti2.5直流正接100110121669施工技术说明:其他技术要

19、求均应符合通用焊接工艺守则设备型号:WS400 焊工姓名:环境温度:27 焊工钢印:A相对湿度:40 记录人: 2010 年 12月26日试件编号:HS001检 验 项 目 评 定 结 果第3页共3页检 验 项 目评定结果报告编号日期外观检查:无裂纹、夹渣、弧坑和气孔 检验员: 合格2010.12.27射 线 探 伤拍片张数评定级别拉 伸 试 验试样数量焊接接头全焊缝合格2010.12.27弯曲试验面弯背弯侧弯合格2010.12.27冲击检验缺口位置试 验温 度合格2010.12.27焊缝热影响区金相检验宏 观微 观合格2010.12.27检查其他检验:综合评定结论:试验过程符合钢制产品焊接试

20、板的力学性能检测规程 试验结果合格本评定适用范围: 板与板对接全焊透焊缝备注编 制日 期审 核日 期批 准日 期第4章 结束语 TiG焊接技术在现代焊接领域仍占有不可替代的作用。尤其在低中合金钢,有色金属和一些特殊性能钢的焊接方面,TiG焊接技术的作用更显突出。奥氏体不锈钢是应用最广泛的不锈钢,以Gr-Ni型不锈钢最为普遍。优质的TiG焊能满足奥氏体不锈钢的设计要求,保证正常的使用寿命。而一旦出现严重的焊接缺陷,就会影响常品的使用寿命,甚至给安全生产带来威胁,引起安全事故。为了防止这些缺陷的产生,对TiG焊技术进行更深一步探索。通过对质量差原因的分析,逐步改善和提高奥氏体TiG焊的焊接质量。奥

21、氏体TiG焊的焊接质量受到焊接设备、焊丝、操作技术水平等的限制。通过对这些限制的深入研究找出造成质量差的原因,提出相应措施,解决这些缺陷,使其进一步完善,加以推广,并对奥氏体不锈钢的焊接作业起到一定指导作用。参考文献1.王新民. 焊接技能实训: 机械工业出版社2.乌日根. 焊接质量检测: 化学工业出版社3.王贵斗. 金属材料与热处理: 机械工业出版社4.邓洪军. 金属熔焊原理: 机械工业出版社5.雷世明. 焊接方法与设备: 机械工业出版社6. 李莉. 焊接结构生产: 机械工业出版社7.李荣雪. 金属材料焊接工艺: 机械工业出版社8.冯秋官. 机械制图与计算机绘图: 机械工业出版社9.全国锅炉压

22、力容器标准化技术委员会编. 承压设备焊接工程师: 云南科技出版社10.劳动和社会保障部教材办公室组织编写. 焊接工艺与技能训练: 中国劳动和社会保障出版社致 谢感谢李海章老师在论文撰写过程中给予的指导和帮助。李海章老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以闻,而且教我做人,虽历时三载,却给以终身受益无穷之道。感谢机械工程系全体老师对我的培养,向他们表示诚挚的谢意和崇高的敬意。同时也感谢我的同学们三年来对我的学习、生活的关心和帮助。再次感谢校方、老师特别是指导老师给予的帮助。最后,向我的父亲、母亲致谢,感谢他们对我的养育之恩。附录31第5章 字符串我们一直在使用字符串,C#中

23、string关键字的映射实际上指向.NET 基类System.String。System.String是一个功能非常强大且用途非常广泛的基类,但它不是.NET中唯一与字符串相关的类。其他的用来处理字符串的.NET类还有很多,如System.Text 和 System.Text.Regular Expressions命名空间中的类等等。一、System.String类System.String是一个类,专门用于存储字符串,允许对字符串进行许多操作。由于这种数据类型非常重要,C#提供了它自己的关键字和相关的语法,以便于使用这个类来处理字符串。使用运算符重载可以连接字符串:string messag

24、e1 = Hello; /return Hellomessage1 += , There; / return Hello, There string message2 = message1 + !; / return Hello, There!C#还允许使用类似于索引器的语法来提取指定的字符:char char4 = message4; / returns a. Note the char is zero-indexed这个类可以完成许多常见的任务,例如替换字符、删除空白和把字母变成大写形式等。可用的方法如表所示。方 法作 用Compare比较字符串的内容,考虑文化背景(区域),确定某些字符是

25、否相等CompareOrdinal与Compare一样,但不考虑文化背景Concat把多个字符串实例合并为一个实例CopyTo把特定数量的字符从选定的下标复制到数组的一个全新实例中Format格式化包含各种值的字符串和如何格式化每个值的说明符IndexOf定位字符串中第一次出现某个给定子字符串或字符的位置IndexOfAny定位字符串中第一次出现某个字符或一组字符的位置Insert把一个字符串实例插入到另一个字符串实例的指定索引处Join合并字符串数组,建立一个新字符串LastIndexOf与IndexOf一样,但定位最后一次出现的位置 LastIndexOfAny与IndexOfAny,但定

26、位最后一次出现的位置PadLeft在字符串的开头,通过添加指定的重复字符填充字符串PadRight在字符串的结尾,通过添加指定的重复字符填充字符串Replace用另一个字符或子字符串替换字符串中给定的字符或子字符串Split在出现给定字符的地方,把字符串拆分为一个子字符串数组Substring在字符串中获取给定位置的子字符串ToLower把字符串转换为小写形式ToUpper把字符串转换为大写形式Trim删除首尾的空白注意:这个表并不完整,但可以让您明白字符串所提供的功能。1、创建字符串如上所述,string类是一个功能非常强大的类,它执行许多很有用的方法。但是,string类存在一个问题:重复

27、修改给定的字符串,效率会很低,它实际上是一个不可变的数据类型,一旦对字符串对象进行了初始化,该字符串对象就不能改变了。表面上修改字符串内容的方法和运算符实际上是创建一个新的字符串,如果必要,可以把旧字符串的内容复制到新字符串中。例如,下面的代码:string greetingText = Hello from all the guys at Wrox Press. ;greetingText += We do hope you enjoy this book as much as we enjoyed writing it.;在执行这段代码时,首先,创建一个System.String类型的对象

28、,并初始化为文本“Hello from all the guys at Wrox Press. ”。注意句号后面有一个空格。此时.NET 运行库会为该字符串分配足够的内存来保存这个文本(39个字符),再设置变量greetingText,表示这个字符串实例。从语法上看,下一行代码是把更多的文本添加到字符串中。实际上并非如此,而是创建一个新字符串实例,给它分配足够的内存,以保存合并起来的文本(共103个字符)。最初的文本“Hello from all the people at Wrox Press.”复制到这个新字符串中,再加上额外的文本“We do hope you enjoy this bo

29、ok as much as we enjoyed writing it.”。然后更新存储在变量greetingText中的地址,使变量正确地指向新的字符串对象。旧的字符串对象被撤销了引用 不再有变量引用它,下一次垃圾收集器清理应用程序中所有未使用的对象时,就会删除它。这本身还不坏,但假定要对这个字符串加密,在字母表中,用ASCII码中的字符替代其中的每个字母(标点符号除外),作为非常简单的加密模式的一部分,就会把该字符串变成“Ifmmp gspn bmm uif hvst bu Xspy Qsftt. Xf ep ipqf zpv fokpz uijt cppl bt nvdi bt xf f

30、okpzfe xsjujoh ju.”。完成这个任务有好几种方式,但最简单、最高效的一种(假定只使用String类)是使用String. Replace()方法,把字符串中指定的子字符串用另一个子字符串代替。使用Replace(),加密文本的代码如下所示:string greetingText = Hello from all the guys at Wrox Press. ;greetingText += We do hope you enjoy this book as much as we enjoyed writing it.;for(int i = z; i=a ; i-) char

31、 old1 = (char)i; char new1 = (char)(i+1); greetingText = greetingText.Replace(old1, new1);for(int i = Z; i=A ; i-) char old1 = (char)i; char new1 = (char)(i+1); greetingText = greetingText.Replace(old1, new1); Console.WriteLine(Encoded:n + greetingText);注意:Replace()以一种智能化的方式工作,在某种程度上,它并没有创建一个新字符串,除非

32、要对旧字符串进行某些改变。原来的字符串包含23个不同的小写字母,和3个不同的大写字母。所以Replace()就分配一个新字符串,共26次,每个新字符串都包含103个字符。因此加密过程需要在堆上有一个能存储总共2678个字符的字符串对象,最终将等待被垃圾收集!显然,如果使用字符串进行文字处理,应用程序就会有严重的性能问题。为了解决这个问题,Microsoft提供了System.Text.StringBuilder类。StringBuilder不像String那样支持非常多的方法。在StringBuilder上可以进行的处理仅限于替换和添加或删除字符串中的文本。但是,它的工作方式非常高效。在使用S

33、tring类构造一个字符串时,要给它分配足够的内存来保存字符串,但StringBuilder通常分配的内存会比需要的更多。开发人员可以选择显式指定StringBuilder要分配多少内存,但如果没有显式指定,存储单元量在默认情况下就根据StringBuilder初始化时的字符串长度来确定。它有两个主要的属性: Length指定字符串的实际长度; Capacity是字符串占据存储单元的最大长度。对字符串的修改就在赋予StringBuilder实例的存储单元中进行,这就大大提高了添加子字符串和替换单个字符的效率。删除或插入子字符串仍然效率低下,因为这需要移动随后的字符串。只有执行扩展字符串容量的操

34、作,才需要给字符串分配新内存,才可能移动包含的整个字符串。在添加额外的容量时,从经验来看,StringBuilder如果检测到容量超出,且容量没有设置新值,就会使自己的容量翻倍。例如,如果使用StringBuilder对象构造最初的欢迎字符串,可以编写下面的代码:StringBuilder greetingBuilder = new StringBuilder(Hello from all the guys at Wrox Press. , 150);greetingBuilder.AppendFormat(We do hope you enjoy this book as much as w

35、e enjoyed writing it); 注意:为了使用StringBuilder类,需要在代码中引用System.Text。在这段代码中,为StringBuilder设置的初始容量是150。最好把容量设置为字符串可能的最大长度,确保StringBuilder不需要重新分配内存,因为其容量足够用了。理论上,可以设置尽可能大的数字,足够给该容量传送一个int,但如果实际上给字符串分配20亿个字符的空间(这是StringBuilder实例允许拥有的最大理论空间),系统就可能会没有足够的内存。在调用Append()方法时,其他文本就放在空的空间中,不需要分配更多的内存。但是,多次替换文本才能获得

36、使用StringBuilder所带来的性能提高。例如,如果要以前面的方式加密文本,就可以执行整个加密过程,无须分配更多的内存:StringBuilder greetingBuilder = new StringBuilder(Hello from all the guys at Wrox Press. , 150);greetingBuilder.Append(We do hope you enjoy this book as much as we + enjoyed writing it);Console.WriteLine(Not Encoded:n + greetingBuilder);

37、for(int i = z; i=a ; i-) char old1 = (char)i; char new1 = (char)(i+1); greetingBuilder = greetingBuilder.Replace(old1, new1);for(int i = Z; i=A ; i ) char old1 = (char)i; char new1 = (char)(i+1); greetingBuilder = greetingBuilder.Replace(old1, new1);Console.WriteLine(Encoded:n + greetingBuilder);这段代

38、码使用了StringBuilder.Replace()方法,它的功能与String.Replace()一样,但不需要在过程中复制字符串。在上述代码中,为存储字符串而分配的总存储单元是150个字符,用于StringBuilder实例以及在最后一个Console.WriteLine()语句中执行字符串操作期间分配的内存。一般,使用StringBuilder可以执行字符串的操作,String可以存储字符串或显示最终结果。2 StringBuilder成员前面介绍了StringBuilder的一个构造函数,它的参数是一个初始字符串及该字符串的容量。还有几个其他的StringBuilder构造函数,例如

39、,可以只提供一个字符串:StringBuilder sb = new StringBuilder(Hello);或者用给定的容量创建一个空的StringBuilder:StringBuilder sb = new StringBuilder(20);除了前面介绍的Length 和 Capacity属性外,还有一个只读属性MaxCapacity,它表示对给定的StringBuilder实例的容量限制。在默认情况下,这由int.MaxValue给定(大约20亿,如前所述)。但在构造StringBuilder对象时,也可以把这个值设置为较低的值:/ This will both set initial capacity to 100, but the max will be 500./ Hence, this StringBuilder can never grow to more than 500 characters,/ otherwise it will raise exception if you try to do that.StringBuil

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1