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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM