zoukankan      html  css  js  c++  java
  • 字符串 String

    字符串的介绍

      1.字符串(String)对象是JavaScript原生三大包装对象之一,用来生成字符串对象。

      

    包装对象指的是数据类型为Number、String和Boolean的值对应的原生对象;
    三大包装对象能力在于:
    
    a.能够将上述基本类型值包装成真正的对象,从而体现JavaScript语言一切皆对象的特点;
    b.是字面量使用对应包装对象的方法的内在原理;
    c.是进行数据类型转换的利器;

      2.标志: 引号   " "    ' '

      3.字符串的创建:

    var s1 = 'abc';       //字面量方式创建
    var s2 = new String('abc');   //构造函数方式创建
    
    typeof s1 // "string"     //字面量创建的类型为Srting
    typeof s2 // "object"    //构造函数返回的类型为对象

      4.字符串的索引与长度

        字符串对象类似于数组,也拥有索引值

    new String('abc')
    // String {0: "a", 1: "b", 2: "c", length: 3}
    (new String('abc'))[1] // "b"

      5.遍历:

        上面代码中,字符串abc对应的字符串对象,有数值键(0、1、2)和length属性,所以可以像数组那样取值。

        循环遍历,for-in (四种遍历方式)

    var str = "这是 一个字符串!";
        for(i in str){
            console.log(str[i]);
        }

    // 这是 一个字符串!

    字符串的一些方法

          1.str.indexOf(value,a);

          功能:检测字符是否存在,存在返回索引值,查不到返回-1;

          参数: value:需要查找的字符

              a:开始查找的起始位置(默认为0,重头查找)

          (可以用这个方法实现字符串去重)

     1     // 字符去重
     2     function norepeatString(str) {
     3         var temp = new String();
     4         for(i in str){
     5             if(temp.indexOf(str[i])==-1){ //检测temp中是否存在原数组中的字符,有则略过,没有则写入
     6                 temp += str[i];    //拼接字符串
     7             }
     8         }
     9         return temp;
    10     }

      2.str.charAt();

          功能:根据索引查字符

          返回值:返回指定位置的字符,参数是从0开始编号的位置

    需要注意的是,如果参数为负数,或者大于等于字符串的长度,charAt返回 空字符串。
    var str = "hello,world";
    console.log(str.charAt(1)); // e

    这个方法我们可以使用数组下标来代替。

    var str = "hello,world";
    console.log(str[1]);//e

      

      3.str.slice(a,b);

        截取 从a开始到b-1结束;

        slice() 方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。

    'JavaScript'.slice(0, 4) // "Java"

    如果省略第二个参数,则表示子字符串一直到原字符串结束。

    'JavaScript'.slice(4) // "Script"

    如果参数是负值,表示从结尾开始倒数计算的位置,即该负值加上字符串长度。

    'JavaScript'.slice(-6) // "Script"
    'JavaScript'.slice(0, -6) // "Java"
    'JavaScript'.slice(-2, -1) // "p"

    如果第一个参数大于第二个参数,slice方法返回一个空字符串。

    'JavaScript'.slice(2, 1) // ""


      4.str.substr(a,b);

        截取 从a开始截取b个;


      5.str.substring(a,b);

        截取 从a开始到b-1结束;

        substring方法用于从原字符串取出子字符串并返回,不改变原字符串,跟slice方法很相像。

        它的第一个参数表示子字符串的开始位置,

        第二个位置表示结束位置(返回结果不含该位置)。  

    'JavaScript'.substring(0, 4) // "Java"

    //如果省略第二个参数,则表示子字符串一直到原字符串的结束。 'JavaScript'.substring(4) // "Script"

    //如果第一个参数大于第二个参数,substring方法会自动更换两个参数的位置。 'JavaScript'.substring(10, 4) // "Script" // 等同于 'JavaScript'.substring(4, 10) // "Script"

    上面代码中,调换substring方法的两个参数,都得到同样的结果。

    //如果参数是负数,substring方法会自动将负数转为0。
    
    'JavaScript'.substring(-3) // "JavaScript"
    'JavaScript'.substring(4, -3) // "Java"

    上面代码中,第二个例子的参数-3会自动变成0,等同于'JavaScript'.substring(4, 0)。由于第二个参数小于第一个参数,会自动互换位置,所以返回Java。

    由于这些规则违反直觉,因此不建议使用substring方法,应该优先使用slice。

     

      6.str.split("");

        分割成数组
          

    //不传参:将字符串变成数组
    "hello".split() = ["hello"]
    //传空字符:每一个分割;
    "hello".split("") = ["h","e","l","l","o"]
    //传指定字符:以指定字符分割
    "2019-08-13".split("-") = ["2019","08","13"]

    split方法还可以接受第二个参数,限定返回数组的最大成员数。

    'a|b|c'.split('|', 0) // []
    'a|b|c'.split('|', 1) // ["a"]
    'a|b|c'.split('|', 2) // ["a", "b"]
    'a|b|c'.split('|', 3) // ["a", "b", "c"]
    'a|b|c'.split('|', 4) // ["a", "b", "c"]

      7.str.replace(a,b);

        替换,将a替换为b,只能替换一个;

    var str = "aabc".replace("a","b");
        console.log(str);  //babc

        

          

  • 相关阅读:
    会议安排最优算法
    Python Singleton
    Android HandlerThread 源代码分析
    [Android]_[0基础]_[adb 有用命令]
    使用sshfs将远程目录挂载到本地
    Netty 中ChannelOption的含义以及使用的场景
    netty4.0 Server和Client的通信
    Netty重要概念介绍
    Zookeeper单机伪集群
    整数集合
  • 原文地址:https://www.cnblogs.com/yad123/p/11403747.html
Copyright © 2011-2022 走看看