字符串长度
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/