zoukankan      html  css  js  c++  java
  • 掌握String类。。。。。

    1. 先说一下String类是什么~

    String类的对象不等同于字符串,"abc"与new String("abc")是不同的,当你使用String类操作字符串的时候,脚本解释器会自动将字符串转换成一个临时String对象,然后再调用String类的方法,然后会放弃该临时String对象,甚至可以在字符串中直接查看属性,String.length来查看长度,所以一般没人使用他的构造函数new String("哈哈~好傻哦")这样 ,而是直接操作字符串。所以我们说String类是字符串原始数据类型的一个包装。

    2. 再说一下String类的属性

    String类只有一个属性那就是String.length ,我们可以试一下~
    trace("abcde".length);
    trace("12345".length);
    trace("<#.,?".length);
    trace("换成中文呢".length);
    trace(" ".length);
    trace("a1<换 ".length);
    以上输出的通通都是5
    说明无论英文中文数字还是符号或者空格都按一个字符算,这样方便我们索引了,因为所有字符串的索引都是从0的,所以所有的字符串的最后一个字符都是这个字符串.length-1

    3. 下边是方法拉

    *合并字符串:

    my_str.concat(参数1,参数2,参数3...)
    这个方法能把字符串my_str和所有的参数合并成一个字符串,但不会改变my_str的值,而是返回一个新的字符串。下边试一下
    a="我是a"
    b="我是b"
    c="我是c"
    abc=a.concat(b,c)
    trace(abc)
    输出面版会输出:我是a我是b我是c

    *把ASCII码转成字符

    以前都是用这个chr(number),比如trace(chr(64)) ,输出:@
    不过现在不推荐使用了而推荐使用String类的String.fromCharCode(参数1,参数2,...)
    使用这个的好处好象只有可以接受多个参数,例如:
    trace(String.fromCharCode(78,83,72,69,78)) //输出:NSHEN
    键盘上每一个键都对应一个ASCII码,具体什么对应什么查一下键位表就知道了。
    下边这里是输出26个英文字母~
    for(var i=65;i<=90;i++){
      trace(String.fromCharCode(i))
      }

    *截取字符(串)~

    有两个方法~先说第一个
    String.slice(开始索引,结束索引+1)~很简单,上边说过,记住索引是从0开始的一直到String.length - 1~试一下吧
    trace("ABCDEFGHIJKLMNOPQRSTUVWXYZ".slice(0,3)) //输出:ABC
    如果不写后一个参数,后一个参数默认为String.length
    如果参数是负数,则表示从后边开始向前数,最后一个字符为-1
    还有一个方法
    String.substr(开始索引,截取长度)
    trace("ABCDEFGHIJKLMNOPQRSTUVWXYZ".substr(0,5))//输出ABCDE
    //----------------------------------------------------------
    除了上边的4个方法 concat()、fromCharCode()、slice() 和 substr() 之外,String 对象的所有其它方法都是通用方法。这意味着这些方法本身先调用 this.toString(),然后再执行它们的操作,而且您可以将这些方法用于其它非 String 对象。

    *搜索字符串中的子字符串

    String.indexOf(要搜索的字符串,开始位置)
    String.lastIndexOf(要搜索的字符串,开始位置)
    两个方法,都是搜索字符串中的要搜索字符,搜到第一个匹配项并返回位置,搜不到就会返回-1,不同的是第一个是从左向右搜索,第二个却是从右向左搜索,试一下
    trace("ABCDEFGABCDEFG".indexOf("D")) //输出:3
    trace("ABCDEFGABCDEFG".indexOf("DEFG")) // 输出:3
    trace("ABCDEFGABCDEFG".indexOf("找不到找不到~"))//输出:-1
    trace("ABCDEFGABCDEFG".lastIndexOf("D")) //输出:10
    trace("ABCDEFGABCDEFG".lastIndexOf("DEFG"))//输出:10
    trace("ABCDEFGABCDEFG".lastIndexOf("找不到找不到~"))//输出:-1

    *转换字母大小写~

    String.toLowerCase()
    String.toUpperCase()
    两个函数很简单,直接看例子
    myStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    trace(myStr.toLowerCase()) //输出:abcdefghijklmnopqrstuvwxyz
    trace(myStr) //输出:ABCDEFGHIJKLMNOPQRSTUVWXYZ
    说明这个函数只是返回副本,并不会改变原来的字符串!
    另一个类似不说了~~

    *最后一个方法了,转字符串为数组!

    String.split(分隔符号,放入数组的个数)
    第2个参数是可选的,可以不用 ,看例子
    my_str = "ABCDEFG";
    i = my_str.split(""); //如果分割符号是“”空的话,每个字符都被看为单独一个~
    trace (i); //输出:A,B,C,D,E,F,G
    j= my_str.split("",3)
    trace(j) //输出:A,B,C

    *super-tomato大大给我们扩展了一个trim()方法,用来删除字符串前后的多余空格!


    先了解一下,有三种空格!
    Acsii码分别为:

    32 英文空格
    9 Tab空格
    12288 中文双字节


    研究一下吧,代码如下:

    String.prototype.trim = function() {
     for(var i=0; i<this.length; i++) {
     if(this.substr(i, 1).charCodeAt() > 32 && this.substr(i, 1).charCodeAt() != 12288) {
     this = this.substr(i, this.length);
     break;
     }
     }
     for(var i=this.length-1; i>=0; i--) {
     if(this.substr(i, 1).charCodeAt() > 32 && this.substr(i, 1).charCodeAt() != 12288) {
     this = this.substring(0, i+1);
     break;
     }
     }
     return this;
    }
    var test = "\t \n a \t\n";
    trace(test.trim());


    基本原理就是除空格以外截取子字符串,从左边向右截一遍,从右边再向左截一遍,最后返回结果

  • 相关阅读:
    python面试题目【转1】
    让python和C/C++联姻【转】
    python面试模拟真题讲解
    JavaScript真的要一统江湖了
    WebApp
    Linux服务器之SSH
    web服务之http
    SNMP简单网络管理协议
    Storm,Spark和Samza
    Stream computing
  • 原文地址:https://www.cnblogs.com/LCX/p/284588.html
Copyright © 2011-2022 走看看