作者:浪子花梦,一个有趣的程序员 ~
本文讲解三个常用的方法,字符串的 StringBuilder对象,枚举的位标志用法,下限非0的数组(不建议使用,会对程序有所影响) . . .
和String 不同,StringBuilder 代表可变字符串。也就是说,StringBuilder 的大多数成员都能更改字符数组的内容,同时不会造成在托管上分配新对象。StringBuilder 只有下面两种情况才会分配新对象:
常见方法如下所示:
StringBuilder stringBuilder = new StringBuilder("huameng");
// 返回最大容纳的字符数
Console.WriteLine(stringBuilder.MaxCapacity);
// 获取容量
Console.WriteLine(stringBuilder.Capacity);
// 获取长度
Console.WriteLine(stringBuilder.Length);
// 返回一个 String对象,浪费性能
Console.WriteLine(stringBuilder.ToString());
// 把 Length 设置为 0
stringBuilder.Clear();
// 末尾追加对象
stringBuilder.Append("langzi");
Console.WriteLine(stringBuilder);
// 追加多个对象,最常用的方法
stringBuilder.AppendFormat("{0},{1}", "hua", "meng");
Console.WriteLine(stringBuilder);
// 替换字符或者字符串
stringBuilder.Replace("hua", "niubi");
Console.WriteLine(stringBuilder);
// 删除指定范围的字符
stringBuilder.Remove(0, 5);
Console.WriteLine(stringBuilder);
char[] ch = new char[10];
// 复制内容
stringBuilder.CopyTo(0, ch, 0, 5);
Console.WriteLine(ch);
结果如下所示:
因为上面的方法都是对一个对象进行操作的,所以我们也可以将许多方法连起来用,如下所示:
StringBuilder stringBuilder = new StringBuilder();
String str = stringBuilder.AppendFormat("{0} {1}", "langzi", "huameng").
Replace(' ', '-').Remove(0, 6).Insert(0,"xiaocong").ToString();
Console.WriteLine(str);
String 和 StringBuilder 中的方法并不完全的对应,比如 ToUpper 方法 StringBulider中就没有,但我们可以像下面这样的操作:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("huameng");
String str = stringBuilder.ToString().ToUpper();
Console.WriteLine(str);
使用 ToString方法 可以在 String 与 StringBuilder 对象中随意的切换,而 ToString 生成 String方法并不改变字符串原有的样子,所以我们就可以为所欲为了 . . .
.
定义一个枚举类型方式如下所示:
internal enum Color
{
White,
Red,
Green,
Blue,
Orange
}
访问方式如下所示:
Color color = Color.Blue;
// 常规字符串样子
Console.WriteLine(color);
Console.WriteLine(color.ToString());
Console.WriteLine(color.ToString("G"));
// 十进制
Console.WriteLine(color.ToString("D"));
// 十六进制
Console.WriteLine(color.ToString("X"));
对于枚举类型的操作有许多,感兴趣的小伙伴可以自行查看文档,下面我们来看看位标志是怎么玩的 . . .
我们只需要在枚举类型的定义上面加上 Flags特性就行了,如下所示:
然后我们就可以像如下这样操作了:
输出的结果如下所示:
如果我们不加那个特性的话,那么我们将输出:5 . . .
.
枚举类型是允许定义方法的,但我们可以通过扩展方法来定义方法,如下所示:
.
创建下限非0的数组会影响程序性能,我们在实际过程中,应该尽量减少这种情况的发生,但我们要会创建这种类型的数组,使用 CreateInstance 进行创建,示例如下所示:
输出的结果如下所示:
当我们尝试访问 下标为 0 的元素时,将会引发异常:
结果如下所示:
.
.
.