StringBuilder类的Remove方法的问题。?

问题描述

//Fig.15.14:StringBuilderInsertRemove.cs//DemonstratingmethodsInsertandRemoveofthe//StringBuilderclass.usingSystem;usingSystem.Windows.Forms;usingSystem.Text;namespaceStringBuilderInsertRemove{///<summary>///testtheInsertandRemovemethods///</summary>classStringBuilderInsertRemove{///<summary>///Themainentrypointfortheapplication.///</summary>[STAThread]staticvoidMain(string[]args){objectobjectValue="hello";stringstringValue="goodbye";char[]characterArray={'a','b','c','d','e','f'};boolbooleanValue=true;charcharacterValue='K';intintegerValue=7;longlongValue=10000000;floatfloatValue=2.5F;doubledoubleValue=33.333;StringBuilderbuffer=newStringBuilder();stringoutput;//insertvaluesintobufferbuffer.Insert(0,objectValue);buffer.Insert(0,"");buffer.Insert(0,stringValue);buffer.Insert(0,"");buffer.Insert(0,characterArray);buffer.Insert(0,"");buffer.Insert(0,booleanValue);buffer.Insert(0,"");buffer.Insert(0,characterValue);buffer.Insert(0,"");buffer.Insert(0,integerValue);buffer.Insert(0,"");buffer.Insert(0,longValue);buffer.Insert(0,"");buffer.Insert(0,floatValue);buffer.Insert(0,"");buffer.Insert(0,doubleValue);buffer.Insert(0,"");output="bufferafterinserts:n"+buffer.ToString()+"nn";buffer.Remove(10,1);//delete2in2.5buffer.Remove(3,4);//delete.333in33.333output+="bufferafterRemoves:n"+buffer.ToString();MessageBox.Show(output,"DemonstratingStringBuilder"+"InsertandRemovemethods",MessageBoxButtons.OK,MessageBoxIcon.Information);}//endmethodMain}//endclassStringBuilderInsertRemove}/****************************************************************************(C)Copyright2002byDeitel&Associates,Inc.andPrenticeHall.**AllRightsReserved.****DISCLAIMER:Theauthorsandpublisherofthisbookhaveusedtheir**besteffortsinpreparingthebook.Theseeffortsincludethe**development,research,andtestingofthetheoriesandprograms**todeterminetheireffectiveness.Theauthorsandpublishermake**nowarrantyofanykind,expressedorimplied,withregardtothese**programsortothedocumentationcontainedinthesebooks.Theauthors**andpublishershallnotbeliableinanyeventforincidentalor**consequentialdamagesinconnectionwith,orarisingoutof,the**furnishing,performance,oruseoftheseprograms.****************************************************************************/如上,而且buffer.Remove(3,4);和buffer.Remove(2,4);结果为什么都一样,不理解

解决方案

解决方案二:
空格是5个字符,前5个都是空格buffer.Remove(3,4);和buffer.Remove(2,4)就是删掉一个空格,当然也就是一样的了。你查一下就清楚,StartIndex应该在这里才能实现buffer.Remove(16,1);//delete2in2.5buffer.Remove(7,4);//delete.333in33.333
解决方案三:
空格是两个,粘过去变5个了,我知道了,头晕了,buffer.Remove(2,4);是33.3332.5100000007KTrueabcdefgoodbyehellobuffer.Remove(3,4);是33.3332.5100000007KTrueabcdefgoodbyehello

时间: 2024-10-27 10:55:07

StringBuilder类的Remove方法的问题。?的相关文章

在C#及.NET框架中使用StringBuilder类操作字符串的技巧_实用技巧

但如果性能的优劣很重要,则应该总是使用 StringBuilder 类来串联字符串.下面的代码使用 StringBuilder 类的 Append 方法来串联字符串,因此不会有 + 运算符的链接作用产生. class StringBuilderTest { static void Main() { string text = null; // Use StringBuilder for concatenation in tight loops. System.Text.StringBuilder

PHP模拟asp.net的StringBuilder类实现方法_php技巧

本文实例讲述了PHP模拟asp.net的StringBuilder类实现方法.分享给大家供大家参考.具体如下: 在asp.net开发开发环境中,有一个StringBuilder类是比较常用的, 这个类用起来可以实现很方便的text文本的操作. 但是在php中,没有这个类. 不过我们却可以通过自定义类来模拟这个方法. /******************************************** * * 函数名:StringBuilder * 作 用:构造PHP下的StringBuil

【转】StringBuilder类与 String类的区别(C#)

StringBuilder类与 String类的区别(C#) 2007-12-03 15:21 在找工作的时候,去了些公司,避免不了要面试和笔试.不过一般最起初的是笔试.我印象中有这样有一道题目:StringBuilder类与 String类的区别?那时候我不太清楚这两个类的区别,今天在看代码的时候,看到同事也用了StringBuilder类.于是我就上网查查了资料,也想总结下StringBuilder类与 String类的区别.学计算机语言的人一定要明白哦,说不定那天你去找工作了,也会遇到这个

新手学JAVA(三)----StringBuilder类

   上一篇文章新手学JAVA(二)----String类与StringBuffer类的区别中了解到,String的值是不可变的,这就导致 每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变 类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象.       StringBuffer类和StringBuilder类功能基本相似.算是两个双胞胎.   下面主要说两点   第一点  线程安全   Str

用 StringBuilder 类替代 String

在ASP.NET中我们经常要用到文本对象,一般的操作是定义一个string mystr,然后用mystr+="aaaa"之类的运算来累加.其实还有一个效率高得多的方法:使用 System.Text.StringBuilder 类,该类提供了更高的性能.举例:我们通常会这么写:String begin_query = "select UPPER(MachineName) As MachineName, "+"LOWER(MachineOwner) As Ma

测试listBox1.Items.Remove方法是利用ToString还是利用gethashCode来定位元素的

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 using System; using Sy

Iterator的remove方法可保证从源集合中安全地删除对象(转)

 如果对正在被迭代的集合进行结构上的改变(即对该集合使用add.remove或clear方法),那么迭代器就不再合法(并且在其后使用该迭代器将会有ConcurrentModificationException异常被抛出). 如果使用迭代器自己的remove方法,那么这个迭代器就仍然是合法的. package chapter1; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * Crea

java中的链表类的remove问题

问题描述 java中的链表类的remove问题 新人初学java,有些基本问题不是很懂,求教各位,谢谢 java中的LinkedList这个链表类中有这样一个方法,removefirst方法,含义是删除,并且返回链表的第一个元素,我想问下各位,是不是只要是删除了第一个元素,那么后面的第二个元素会顶到原来第一个元素的位置上,当我第二次调用这个方法时,相当于删除了链表的第一个元素(原来的第二个元素)? 谢谢各位了 解决方案 是的,removeFirst()方法返回链表第一个元素,并且删掉这个元素,当

详细分析Java中String、StringBuffer、StringBuilder类的性能_java

我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义查看API会发现,String.StringBuffer.StringBuilder都实现了 CharSequence接口,虽然它们都与字符串相关,但是其处理机制不同. String:是不可改变的量,也就是创建后就不能在修改了. StringBuffer:是一个可变字符串序列,它与String一样,在内存中保存的都是一个有序的字符串序