字符串

字符串

字符串概述

字符串也是一個數(shù)據(jù)結構(串)膝捞,將同樣的內容串在一起瀑凝。因為在對應的js里面字符串屬于一個值類型(值類型是常量 常量是不能變的)

字符串是不能改變的序芦。結合上一章提到的數(shù)據(jù)結構里面串也是一個存儲結構,作為存儲結構增刪改查的方法(字符串的增刪改查 不能針對于本身 而是返回一個新的字符串)

字符串的聲明

1粤咪、值類型賦值

var str="hello world"

2谚中、以new關鍵詞說明(引用了對應的值地址)

var str=newString("abc");//引用了一個空值的地址

ES6新增 字符串模板

var a='jack'

var str=`hello string ${a}`//鍵盤上面的Esc下面的這個鍵 解析${} 以變量來解析

console.log(str);//hello string jack

new String() 和 Stirng()區(qū)別

new String是構建一個String對象(引用數(shù)據(jù)類型 有地址指向的)

String單純的將對應的傳進入的參數(shù)轉為string類型(值類型)

字符串的屬性

length屬性 返回字符串的長度(包含空格及換行)

var str='a b'

console.log(str.length) //長度為3 包含空格

通過下標來獲取對應的字符串

var str='abc'

console.log(str[0]) //a

字符串的方法(返回新的字符串)

通過下標找字符串(char字符)

charAt(下標)

var str='abc'

str.charAt(0)//a

charCodeAt(ACSII碼)

var str='abc'

str.charCodeAt(0)//97

通過字符串找下標(找不到返回-1 找得到返回對應的下標值 number)

indexOf

var str='abc'

console.log(str.indexOf('ab'))//返回的下標0

console.log(str.indexOf('d'))//找不到返回-1

//可以有倆個參數(shù) 第一個參數(shù)為 對應需要查詢的字符串 第二個參數(shù)為 開始查找的下標

console.log(str.indexOf('b','2'))//從下標2開始找 找第一個出現(xiàn)b的位置 返回-1

var str='abbbccde'

console.log(str.indexOf('b','2'))//從下標2開始找 找第一個出現(xiàn)b的位置 在查找的時候把下標為2的位置當作第一個 返回2

lastindexOf

console.log(str.lastIndexOf('b'));//3

console.log(str.lastIndexOf('b',0));//-1 從0的位置往前找

console.log(str.lastIndexOf('b',4));//3? 從4的位置往前找

//也就是說 默認的情況下 對應的后面的下標可以省略 str.length-1

自定義函數(shù)實現(xiàn)對應的indexOf方法和lastIndexOf方法

? ? ? ? //實現(xiàn)對應的indexOf方法

? ? ? ? var searchStr = "abcdefabcd"

? ? ? ? function indexOf(str, index) {

? ? ? ? ? ? if (!index) { //當前如果是undefined的值

? ? ? ? ? ? ? ? index = 0 //默認為0

? ? ? ? ? ? }

? ? ? ? ? ? // 得到str的長度

? ? ? ? ? ? var len = str.length

? ? ? ? ? ? //這個5是表示當前的字符串的總長度

? ? ? ? ? ? for (var i = index; i < searchStr.length; i++) {

? ? ? ? ? ? ? ? var s = ''

? ? ? ? ? ? ? ? for (var j = 0; j < len; j++) {

? ? ? ? ? ? ? ? ? ? s += searchStr[i + j]

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? if (s == str) {

? ? ? ? ? ? ? ? ? ? return i

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return -1

? ? ? ? }

? ? ? ? console.log(indexOf('bc', 4));

? ? ? ? //實現(xiàn)對應的lastindexOf方法

? ? ? ? var searchStr = "abcdefabcde"

? ? ? ? function lastIndexOf(str, index) {

? ? ? ? ? ? if (!index && index != 0) { //當前如果是undefined的值 或者不為0

? ? ? ? ? ? ? ? index = searchStr.length - 1 //默認為最后一個

? ? ? ? ? ? }

? ? ? ? ? ? // 得到str的長度

? ? ? ? ? ? var len = str.length

? ? ? ? ? ? //這個5是表示當前的字符串的總長度

? ? ? ? ? ? for (var i = index; i > len; i--) {

? ? ? ? ? ? ? ? var s = ''

? ? ? ? ? ? ? ? for (var j = 0; j < len; j++) {

? ? ? ? ? ? ? ? ? ? s += searchStr[i - j]

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? if (s == str) {

? ? ? ? ? ? ? ? ? ? return i

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return -1

? ? ? ? }

? ? ? ? console.log(lastIndexOf('e', 9));

search方法(和indexOf一樣 支持正則表達式)

var str='abc'

console.log(str.search(/ab/))? //0 //ab/正則表達式

console.log(str.search(/ab/,0))//從0的位置開始找 匹配ab的內容

靜態(tài)方法(通過構造方法名直接調用的叫做靜態(tài)方法? 他是對應的static修飾的)

fromCharCode 將對應的ascii碼轉為字符串

var str=string.fromCharCode(97)? //返回的是一個字符串

console.log(str)//a

concat將多個字符串轉為連接成一個字符串返回

var str=`hello`.concat('world')

console.log(str)//helloworld

支持正則的方法(4個)

search查找(找到返回下標 沒找到返回-1)

replace替換(將找到的第一個字符串替換成一個新的字符串)

var str='abc'

str.replace('a','hello')//將a替換成hello

console.log(str1)

split分割(返回數(shù)組)

//分割 成為一個數(shù)組 split 數(shù)組變成字符串 join(默認以,)

var str='1,2,3'

//默認不是以寥枝,作為分割 默認不分割 直接填入到數(shù)組

console.log(str.split());//['1,2,3']

console.log(str.split(','));//['1', '2', '3']

match匹配(返回數(shù)組)

//match 返回一個數(shù)組 (匹配的內容)

var str="abcacc"

//默認只找第一個匹配的 加入到數(shù)組

var arr=str.match('a')

console.log(arr);

截取的方法

substring(開始的下標宪塔,結束的下標)

substr(開始的下標,截取的個數(shù))

//截取的方法 substring substr

var str="abcdef"

//substring(開始的下標囊拜,結束的下標)不包含結束的下標

console.log(str.substring(1));//bcdef

console.log(str.substring(1,3));//bc//截取不包含最后一個下標(默認不填str.length)

//substr(開始的下標某筐,截取的下標)

console.log(str.substr(1));//默認的情況是截取到最后 bcdef

console.log(str.substr(1,3));//從下標1開始截取 截取個數(shù)為3個 bcd

轉大寫(toUpperCase)

var str='abcd'

console.log(str.toUpperCase());

轉小寫(toLowerCase)

var str='ABCD'

console.log(str.toLowerCase());


Match類 (數(shù)學類 一切和數(shù)學計算相關的方法都在這個里面 且這個方法都是靜態(tài)方法)

屬性

PI 3.1415926

E 科學計數(shù)法

方法

random隨機數(shù)

round四舍五入

floor向下取整

celi向上取整

pow取冪次方

sqrt開平方

abs取絕對值

max最大值

min最小值

...

經(jīng)典字符串的題目(回文字符串 馬拉車算法(貪心算法)dp動態(tài)規(guī)劃 dp數(shù)組 字符串搜索重復的字符串最長的 hash比對)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市冠跷,隨后出現(xiàn)的幾起案子南誊,更是在濱河造成了極大的恐慌,老刑警劉巖蔽莱,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弟疆,死亡現(xiàn)場離奇詭異戚长,居然都是意外死亡盗冷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門同廉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仪糖,“玉大人,你說我怎么就攤上這事迫肖」埃” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵蟆湖,是天一觀的道長故爵。 經(jīng)常有香客問我,道長隅津,這世上最難降的妖魔是什么诬垂? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮伦仍,結果婚禮上结窘,老公的妹妹穿的比我還像新娘。我一直安慰自己充蓝,他們只是感情好隧枫,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布喉磁。 她就那樣靜靜地躺著,像睡著了一般官脓。 火紅的嫁衣襯著肌膚如雪协怒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天确买,我揣著相機與錄音斤讥,去河邊找鬼。 笑死湾趾,一個胖子當著我的面吹牛芭商,可吹牛的內容都是我干的。 我是一名探鬼主播搀缠,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼铛楣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了艺普?” 一聲冷哼從身側響起簸州,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎歧譬,沒想到半個月后岸浑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瑰步,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年矢洲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缩焦。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡读虏,死狀恐怖,靈堂內的尸體忽然破棺而出袁滥,到底是詐尸還是另有隱情盖桥,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布题翻,位于F島的核電站揩徊,受9級特大地震影響,放射性物質發(fā)生泄漏嵌赠。R本人自食惡果不足惜塑荒,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望猾普。 院中可真熱鬧袜炕,春花似錦、人聲如沸初家。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陌知,卻和暖如春他托,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仆葡。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工赏参, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沿盅。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓把篓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腰涧。 傳聞我的和親對象是個殘疾皇子韧掩,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350