巧用对象的Length属性来裁剪对象内容

简介:
在使用JScript的数组的时候,我发现一个挺好玩的特性,就是它的内置对象Array的length是可以写的 omg_smile.gif。很奇怪吧?但是很好玩哦。那么如果我改变其length会有什么效果呢?

    当我们修改Array实例的length属性后,就会改变该数组的容量。
    比如JScript的数组: var array = ['a', 'b', 'c'];
    我们使array.length=1,数组内元素就变成了:['a'];
    如果让array.length=5,数组内元素就变成了:['a', 'b', 'c', '', '']。
    // 操作都相对于原始数组进行
    
    这个特性除了JScript外,.NET Framework中BCL类StringBuilder的实例也有这个特性。
    比如StringBuilder的实例:StringBuilder strb = new StringBuilder("abc");
    我们使strb.Length=1,对象内容变为:"a";
    如果让strb.Length=5,对象内容变为:"abc  ";
     当新的Lenght小于strb本身的Length时,对象的内容按指定的长度截断;如果新的Length大于strb本身的Length时,系统用空格补充不足。

    使用StringBuilder的这个特性,我们还可以用它来实现一个获取指定个数空格字符串的函数:
    string GetSpaces( int count)
    {
        StringBuilder strb = new StringBuilder(count);
        strb.Length = count;
        return strb.ToString();
    }
    // 高效清爽哦~~

    当然StringBuilder这个特性我用的比较多的是,当我有一些类似:"a,b,c,d,e,"或"1;2;3;4;5;"这样的字符串,并且想获得:"a,b,c,d,e"或"1;2;3;4;5"时。使用strb.Length = strb.Length-1就行了。

    这里有个小技巧,如果我们的字符串不是StringBuilder格式,而是string格式,我们最好不要生成:"a,b,c,d,e,"或"1;2;3;4;5;"这种格式。因为这样我们需要使用str = str.Substring(0, str.Length-1)来截断字符串,如果我们在循环里面生成的格式是:",a,b,c,d,e"或";1;2;3;4;5"。那么要得到"a,b,c,d,e" 或 "1;2;3;4;5" 就要容易些,直接str = str.Substring(1)就可以了teeth_smile.gif


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
13天前
|
前端开发
css 超实用的:empty —— 隐藏空元素、缺失字段智能提示
css 超实用的:empty —— 隐藏空元素、缺失字段智能提示
12 0
|
2月前
|
存储 Java API
Java数组元素的填充与替换技术详解
Java数组元素的填充与替换技术详解
26 1
|
2月前
|
XML JSON 移动开发
BpmnJS 元素属性的updateProperties 和updateModdleProperties的属性更新区别
BpmnJS 元素属性的updateProperties 和updateModdleProperties的属性更新区别
70 1
|
9月前
|
JavaScript 前端开发 定位技术
JavaScript如何操作实现一个地图并标记到自身当前位置(本文从创建key值开始,到实现标点结束)
JavaScript如何操作实现一个地图并标记到自身当前位置(本文从创建key值开始,到实现标点结束)
49 0
JavaScript如何操作实现一个地图并标记到自身当前位置(本文从创建key值开始,到实现标点结束)
|
JavaScript 前端开发 API
Element表格和表单字典转换(静态和动态)(下)
Element表格和表单字典转换(静态和动态)(下)
169 0
|
JavaScript Java 关系型数据库
Element表格和表单字典转换(静态和动态)(上)
Element表格和表单字典转换(静态和动态)(上)
355 0
|
Java 编译器
深入探索: 对象构造的隐藏功能与技巧
深入探索: 对象构造的隐藏功能与技巧
80 0
|
JavaScript 前端开发
关于 操作COM组件的RGB属性只能传递一个int表达COM三色属性rgb 的解决方法
关于 操作COM组件的RGB属性只能传递一个int表达COM三色属性rgb 的解决方法
关于 操作COM组件的RGB属性只能传递一个int表达COM三色属性rgb 的解决方法
|
JavaScript 前端开发
jquery设置cursor的属性改变光标的类型(形状)
jquery设置cursor的属性改变光标的类型(形状)