js之String字符串操作

字符串长度

length 属性返回字符串的长度

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
console.log(sln);  //26
字符串拼接

直接用+号:

String a = "I"; String b = "love"; String c = "you";String d = a+b+c;

就能得到I love you了
"I"+"love"+"you" 得到的也是I love you

字符串比较

==和equals都能比较字符串,返回的都是boolean类型

String a ="I";String b = "love";

a==b;返回 false
a.equals(b)返回 false
==比较的是2个字符串是否指向同一地址,equals()比较的是实际字符串,比如大小写,长度等

是否包含

1,     contains(); 返回值为boolean类型

String a = "szrfrrgdhjd";

a.contains("g") 里面包含,所以返回true

2,    indexOf(); 返回的是一个int类型,通常和substring()一起用

String a = "qwertyu";

a.indexOf("e");他返回的是int类型的2,就是说e在字符串a中的第2个位置
如果有多个e的话,始终返回的是第一个e的位置
indexOf() 方法返回字符串中指定文本首次出现的索引(位置)
lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引
如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1。

是否为空

1, == null;
2, isEmpty();返回的都是boolean

String a = "sssss";

a.idEmpty(); a不是空,返回的是false

分割字符串

split()分割字符串返回的是一个String数组

String a = "abcdeAfghijk";
String [] b = a.split("A");//以A作为分割点,将字符串a分割为2个字符串数组分别为
b[0] = "abce";
b[1] = "efghijk"

如果字符串包含好几个A呢

String a = "abcdeAfghAijk";
String [] b = a.split("A");  //以每个A作为分割点,得到的是
b[0] = "abde";
b[1] = "fgh";
b[2] = "ijk";

还有更多就依此类推

截取字符串中间段

提取部分字符串
有三种提取部分字符串的方法:
slice(start, end) (如果某个参数为负,则从字符串的结尾开始计数。)
substring(start, end)
substr(start, length)

substring(int start,int end) 截取从start到end中间的字符串,也可以只传入一个int start 截取从start到最后
下面来一个实际操作:
{name=段炼, age=25, sex=男, id=12, hobby=吃饭。睡觉} 中拿到id是多少的值,也就是拿到int类型的12

String s = "{name=段炼, age=25, sex=男, id=12, hobby=吃饭。睡觉}";
		 if (s.contains("id")) {
           //拿到id字段是处于字符串第几个位置
           int start = s.indexOf("id");
           //"id"字段后面是"hobby"字段,拿到hobby字段的位置
           int end = s.indexOf("hobby");
           /*
            * {name=段炼, age=25, sex=男, id=12, hobby=吃饭。睡觉}
            * start + 3:从i开始+3个正好是id也就是12开始的地方,
            * end-2:hobby-2正好是12结束的位置;一共减去了一个h和一个逗号
            */
           String a = s.substring(start + 3, end-2);
           //得到id后转换成int类型
          int id = Integer.parseInt(a);

得到的id就是12

字符串替换

replace(oldChar, newChar) 方法
参数1:要被替换的字符,参数2:替换进去的字符
该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如:

String s = "abcde8fghijk8lmn";
String a = s.replace('8', 'Q');
//a的值为"abcdeQfghijkQlmn"

replaceAll(String regularExpression, String replacement), 替换所有包含的字符串
参数1:要替换的字符串,2,替换进去的字符串

String s = "QQQQabcWWWabcGGGGabc";
String a = s.replaceAll("abc", "PPP");
//a的值为"QQQQPPPWWWPPPGGGGPPP"

如果只替换第一个abc用replaceFirst()

String s = "QQQQabcWWWabcGGGGabc";
String a = s.replaceFirst("abc", "PPP");
//a的值为"QQQQPPPWWWabcGGGGabc"
转换为大写和小写

通过 toUpperCase() 把字符串转换为大写

var text1 = "Hello World!";       // 字符串
var text2 = text1.toUpperCase();  // text2 是被转换为大写的 text1
console.log(text2)   //HELLO WORLD!

通过 toLowerCase() 把字符串转换为小写

var text1 = "HELLO WORLD!";       // 字符串
var text2 = text1.toLowerCase();  // text2 是被转换为小写的 text1
console.log(text2)    //hello world!
concat() 方法

concat() 连接两个或多个字符串:

var text1 = "Hello";
var text2 = "World!";
var text3 = text1.concat(" ",text2);
console.log(text3)  //Hello World!

concat() 方法可用于代替加运算符。下面两行是等效的:

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

所有字符串方法都会返回新字符串。它们不会修改原始字符串。
正式地说:字符串是不可变的:字符串不能更改,只能替换。

去空格

ltrim()、rtrim() 和 trim() 函数的区别   
返回不带前导空格 (ltrim)、后续空格 (rtrim) 或前导与后续空格 (trim) 的字符串

trim() 方法删除字符串两端的空白符
警告:Internet Explorer 8 或更低版本不支持 trim() 方法。

提取字符串字符

这是两个提取字符串字符的安全方法:

  • charAt(position)
  • charCodeAt(position)

charAt() 方法返回字符串中指定下标(位置)的字符串:

var str = "HELLO WORLD";
str.charAt(0);            // 返回 H

charCodeAt() 方法返回字符串中指定索引的字符 unicode 编码:

var str = "HELLO WORLD";
str.charCodeAt(0);         // 返回 72
把字符串转换为数组

可以通过 split() 将字符串转换为数组:

var str = "a,b,c,d,e,f";
var arr = str.split(",");
console.log(arr)  //a,b,c,d,e,f

str .split(" ");          // 用空格分隔
str .split("|");          // 用竖线分隔

原文:https://blog.csdn.net/dl10210950/article/details/52557089/

原文地址:https://www.cnblogs.com/jessie-xian/p/11572261.html