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