学习之StringBuilder

1)此类表示值为可变字符序列的类似字符串的对象。之所以说值是可变的,是因为在通过追加、移除、替换或插入字符而创建它后可以对它进行修改。无法继承此类。

2)命名空间:System.Text
 
   程序集:mscorlib(在 mscorlib.dll 中)

3)StringBuilder 的容量是实例在任何给定时间可存储的最大字符数,并且大于或等于实例值的字符串表示形式的长度。容量可通过Capacity 属性或EnsureCapacity 方法来增加
         或减少,但它不能小于
Length属性的值。如果在初始化 StringBuilder 的实例时没有指定容量或最大容量,则使用特定于实现的默认值16。

4)String 或 StringBuilder 对象的串联操作的性能取决于内存分配的发生频率。String 串联操作每次都分配内存,而 StringBuilder 串联操作仅当 StringBuilder 对象缓冲区太小
   
 而无法容纳新数据时才分配内存。因此,如果串联固定数量的 String 对象,则 String 类更适合串联操作。这种情况下,编译器甚至会将各个串联操作组合到一个操作中。如果串
   
 联任意数量的字符串,则 StringBuilder 对象更适合串联操作;例如,某个循环对用户输入的任意数量的字符串进行串联。

5)继承层次结构:  System.Text.StringBuilder

6)下面的代码示例演示如何调用由 StringBuilder 类定义的多个方法。

 1 using System;
2 using System.Text;
3
4 public sealed class App
5 {
6 static void Main()
7 {
8 // Create a StringBuilder that expects to hold 50 characters.
9 // Initialize the StringBuilder with "ABC".
10 StringBuilder sb = new StringBuilder("ABC", 50);
11
12 // Append three characters (D, E, and F) to the end of the StringBuilder.
13 sb.Append(new char[] { ‘D‘, ‘E‘, ‘F‘ });
14
15 // Append a format string to the end of the StringBuilder.
16 sb.AppendFormat("GHI{0}{1}", ‘J‘, ‘k‘);
17
18 // Display the number of characters in the StringBuilder and its string.
19 Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString());
20
21 // Insert a string at the beginning of the StringBuilder.
22 sb.Insert(0, "Alphabet: ");
23
24 // Replace all lowercase k‘s with uppercase K‘s.
25 sb.Replace(‘k‘, ‘K‘);
26
27 // Display the number of characters in the StringBuilder and its string.
28 Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString());
29 }
30 }
31
32 // This code produces the following output.
33 //
34 // 11 chars: ABCDEFGHIJk
35 // 21 chars: Alphabet: ABCDEFGHIJK


学习之StringBuilder

时间: 2024-10-14 06:05:38

学习之StringBuilder的相关文章

学习之StringBuilder(续)

与String类相比,System.Text.StringBuilder类可以实现动态字符串.此外,动态的含义是指在修改字符串时,系统不需要创建新的对象,不会重复开辟新的内存空间,而是直接在原StringBuilder对象的基础上进行修改.下面,将从各个应用的角度,详细讨论StringBuilder类. 1. 声明StringBuilder串 StringBuilder类位于命名空间System.Text中,使用时,可以在文件头通过using语句引入该空间: using System.Text;

Java学习资料-StringBuilder与StringBuffer的区别

相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们的比较列表上将多出一个对象了,这就是StringBuilder类.String类是不可变类,任何对String的改变都会引发新的String对象的生成:而StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象,可变和不可变类这一对对象已经齐全了,那么为什么还要引入新的StringBuilder类干吗?相信大家都有此疑问,我也如此.下面,我们

学习2____String,StringBuilder,StringBuffer

一:String: String类不可变的原因:底层是由private final char [ ]修饰的字符数组,这也决定了String类不可被继承(final修饰):  1.构造方法:由于在内存中存放的方式不同(常量池,堆),String可以使用常量进行赋值. //两种方式的构造方法: String str="123"; //引用类型,但可以向常量一样赋值,因为在内存中存放的方式不一样 String str =new String ("123"); 2.常用方法

类的继承与静态的学习

今天周一,昨天没有上课,所以今天又回来啦,今天学习啦知识点不碎,就是首先学习了StringBuilder 和 String 的使用,下面简单的说下StringBuilder 和 String使用的方法. <1>.StringBuilder 和 String 的区别? String 在进行运算时(如赋值.拼接等)会产生一个新的实例,而 StringBuilder 则不会.所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String 如果要操作一个不

Java学习的一些基础笔记

classpath.;%java_home%\lib;%java_home%\lib\tools.jar;D:\Java\;java_homeD:\Program Files\Java\jdk1.8.0_51pathC:\Users\BaseKing-Sunie\AppData\Local\Code\bin;%java_home%\bin;%java_home%\jre\bin;D:\adt-bundle-windows-x86_64_20131020\sdk\tools;D:\adt-bund

JAVASE01---Unit01: API文档 、 字符串基本操作

用户看见的和你没有关系.客户端主要用来展现的,服务端(后台).程序员是内在美,和外在美没有关系.UI赋予你内在美,程序赋予你外在美和灵魂.java学完之后做的是服务端开发,以及Android的工作.服务端开发分为两个分支,最主流做的是商业级的服务器(公司及企业的管理系统.OA系统,例如银行操作系统后台都是java的工作),其次就是游戏,端游等等.大部分工作做传统的javaEE工作,商业级的东西. C语言是出现比较早的高级语言,它现在基本上做的都是底层的操作.比如,驱动的开发,内核的开发.和操作系

201771010117马兴德 实验二 Java基本程序设计(1)

实验二 Java基本程序设计(1)  第一部分    理论知识的学习. 第三章Java基本程序设计结构 1  基本知识: (1)标识符:标识符由字母.下划线.美元符号和数字组成,且第一个符号不能为数字.比如Hello,$1234都是合法的字符:同时标识符也可用作类名.变量名.方法名.文件名等. (2)关键字:关键字就是Java语言中被赋予特定意义的一些单词.比如 class.public.try等,但是关键字不能用作变量名. (3)注释:Java有三种注释方法,如://./*和*.(定义一个注释

20182326 2019-2020-1 《数据结构与面向对象程序设计》实验三报告

20182326 2019-2020-1 <数据结构与面向对象程序设计>实验三报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 刘颖洁 学号:20182326 实验教师:王志强 实验日期:2019年9月23日 必修/选修: 必修 1.实验内容 下载安装并使用IDEA,完成下面实验(https://www.cnblogs.com/rocedu/p/6371315.html). 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态(自己去学!) 初步掌握UM

Java源码学习 -- java.lang.StringBuilder,java.lang.StringBuffer,java.lang.AbstractStringBuilder

一直以来,都是看到网上说“ StringBuilder是线程不安全的,但运行效率高:StringBuffer 是线程安全的,但运行效率低”,然后默默记住:一个是线程安全.一个线程不安全,但对内在原因并不了解.这两天终于下定决心看了下源代码,才深刻理解为啥一个线程安全.一个非线程安全. 一名话总结:java.lang.StringBuilder 与 java.lang.StringBuffer 同是继承于 java.lang.AbstractStringBuilder,具体在功能实现大多在 Abs