day 06 字元串

来源:https://www.cnblogs.com/jxooooolxe/archive/2022/08/01/16541525.html
-Advertisement-
Play Games

字元串 字元串概述(個人理解字元串就是把一串字元連接在一起,而且他的值類型是常量,所以不能改變,返回值只能返回一個新的字元串) 字元串也是一個數據結構(串),將同樣的內容串在一塊。因為在對應的js裡面字元串屬於一個值類型(值類型是常量 常量是不能變)。字元串是不能改變的。結合昨天提到的數據結構裡面串 ...


字元串

字元串概述(個人理解字元串就是把一串字元連接在一起,而且他的值類型是常量,所以不能改變,返回值只能返回一個新的字元串)

字元串也是一個數據結構(串),將同樣的內容串在一塊。因為在對應的js裡面字元串屬於一個值類型(值類型是常量 常量是不能變)。字元串是不能改變的。結合昨天提到的數據結構裡面串也是一個存儲結構,作為存儲結構增刪改查的方法(字元串的增刪改查 不能針對於本身 而是返回一個新的字元串)

字元串的聲明

1.值類型賦值

var str = "hello world"

 

2.以new關鍵詞聲明(引用了對應的值的地址)(用new聲明就會開闢一個新空間)

var str = new String("abc"); //引用了空值的地址

 

ES6新增 字元串模板
var a = 'jack'
var str = `hello string ${a}` //esc下麵的這個鍵 解析${} 以變數來解析
console.log(str); //hello string jack
new String() 和 String() 區別
1.new String是構建一個String對象 (引用數據類型 有地址指向的)
2.String 單純的將對應的傳進入的參數轉為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碼)(返回的是這地在這個地址下麵字元串的ACSII碼)

var str = 'abc'
str.charCodeAt(0) //返回的是97

indexOf
lastIndexOf

通過字元串找下標(找不到返回-1 找的到返回對應的下標值 number(第一次出現的))

indexOf

var str = 'abc'
console.log(str.indexOf('ab')) //返回的下標0
console.log(str.indexOf('d')) //找不到返回-1
//可以有倆個參數 第一個參數為 對應需要查詢的字元串  第二個參數為 開始查找的下標
console.log(str.indexOf('b',2)) //從下標2開始找 找第一個出現b的位置 返回-1
var str = 'abbbccde'
console.log(str.indexOf('b',2)) //從下標2開始找 找第一個出現b的位置 2

lastIndexOf

console.log(str.lastIndexOf('b')) //3
console.log(str.lastIndexOf('b',0)) //-1 從0的位置往前找
console.log(str.lastIndexOf('b',4)) //3
//也就是說預設的情況下 對應的後面的下標可以省略 str.length-1

自定義函數實現對應的indexOf方法及對應的lastIndexOf方法

//實現一下對應的indexOf方法
var searchStr = "abcdefabcde"
function indexOf(str,index){
    if(!index){ //當前如果是undefined的值
        index = 0 //預設為0
    }
    //得到str的長度
    var len = str.length
    //這個5是表示當前的字元串的總長度
    for(var i=index;i<searchStr.length-len;i++){
        var s = ''
        for(var j=0;j<len;j++){
            s+=searchStr[i+j]
        }
        if(s==str){
            return i
        }
    }
    return -1
}
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=len-1;j>=0;j--){
            s+=searchStr[i-j]
        }
        if(s==str){
            return i
        }
    }
    return -1
}
  for(var i=index;i>=len;i--){
        var s = ''
        for(var j=len-1;j>=0;j--){
            s+=searchStr[i-j]
        }
        if(s==str){
            return i
        }
    }註意這個j=len - 1 j>=0 ;j-- 目的是為了讓存儲的字元串跟我們要求的字元串的順序一致

search 方法(和indexOf一樣 支持正則表達式)
var str = 'abc'
console.log(str.search(/ab/)) //0 /ab/正則表達式
console.log(str.search(/ab/,0)) //從0的位置開始找 匹配ab的內容
靜態方法(通過構造方法名直接調用的叫做靜態方法 他是對應的static修飾的)

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

var str = String.fromCharCode(97) //返回的是一個字元串
console.log(str) //a

 

concat 將多個字元串轉為連接成一個字元串返回
var str = 'hello'.concat('world')
console.log(str)//hello world
支持正則的方法(4個)

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

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

var str = 'abca'
var str1 = str.replace('a','hello')//將a替換成hello
console.log(str1)

split 分割(返回數組)

//分割 成為一個數組 split  數組變成字元串 join (預設以,)
var str = '1,2,3'
//預設不是以,作為分割 預設不分割 直接填入到數組
console.log(str.split()); //['1,2,3']
console.log(str.split(',')); //['1','2','3']

match 匹配(返回數組)

//match 返回一個數組 (匹配的內容)
var str = "abcacc"
//預設只找第一個匹配的 加入到數組
var arr = str.match('a')
console.log(arr);
截取的方法

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

substr(開始的下標,個數)

//截取的方法 substring substr 
var str = "abcdef"
//substring(開始的下標,結束的下標) 不包含結束的下標
console.log(str.substring(1));//bcdef
console.log(str.substring(1,3));//截取不包含最後一個下標 (預設不填str.length)bc
// substr(開始的下標,截取的個數)
console.log(str.substr(1));//預設的情況是截取到最後 bcdef
console.log(str.substr(1,3));//從下標1開始截取 截取個數為3個 bcd
轉大寫 (toUpperCase)
var str = 'abcA'
console.log(str.toUpperCase())
轉小寫 (toLowercase)
var str = 'abcA'
console.log(str.toLowerCase())
Math類(及數學類)
常量 PI 3.1415926
e 科學計數法
方法

random 隨機數  (0,1)之間的隨機數因為瀏覽器只有16位,所以會顯示0後面16位小數

round 四捨五入  正常的4舍五入

floor 向下取整  往下麵取整數

ceil 向上取整  完上面取整數

pow 取冪次方  幾的幾次冪

sqrt 開平方    幾的平方

abs 取絕對值  肯定是個>=0 的數

max 最大值   最大值

min 最小值  最小值

問題?生成隨機數的時候,是不是要讓生成的隨機數的概率相等才叫,生成隨機數?

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Mysql的系統架構圖 二、Mysql存儲引擎 Mysql中的數據是通過一定的方式存儲在文件或者記憶體中的,任何方式都有不同的存儲、查找和更新機制,這意味著選擇不同的方式對於數據的存取有效率的差距。 這種不同的存儲方式在 MySQL中被稱作存儲引擎。 存儲引擎是Mysql資料庫系統的底層組件,數據 ...
  • mysql主從 1.主從原理 1.1 主從介紹 所謂mysql主從就是建立兩個完全一樣的資料庫,其中一個為主要使用的資料庫,另一個為次要的資料庫,一般在企業中,存放比較重要的數據的資料庫伺服器需要配置主從,這樣可以防止因資料庫伺服器宕機導致數據丟失,還能保證業務量太多、數據太多和訪問人數太多時服務的 ...
  • mysql 簡潔式安裝步驟 1. 設置全局變數 解壓mysql壓縮包到指定位置, 然後配置全局變數, 在 path 中添加全局變數, 值為 mysql 根目錄下 bin 目錄路徑, 比如: D:\code_space\environments\mysql-8.0.30\bin 然後保存即可 2. 配 ...
  • 常用命令 啟動redis服務(Windows) 在redis的目錄下執行命令: redis-server 啟動redis客戶端實例(Windows) 在redis的src目錄下執行命令: redis-cli 連接遠程redis伺服器:(Windows) redis-cli -h host -p po ...
  • 一、直播介紹 上期雅澤同學對ChengYing是什麼、有什麼樣的功能特性,如何快速入門做了介紹,本期海洋同學將會為大家分享ChengYing部署Hadoop集群實戰的相關內容,歡迎大家積极參与。 二、直播主題 ChengYing部署Hadoop集群實戰 三、直播時間 時間:2022年8月2日晚 19 ...
  • 我們都理解B+樹和Hash索引的區別有助於我們預測索引在不同的存儲引擎中是怎麼執行查詢的。 B+ TREE 索引特性B數是一種在資料庫索引中流行的樹數據結構。該結構始終保持排序,從而可以快速查找精確匹配。MySQL中使用的是B樹的一種變體,B+樹,這種類型的索引可用於大多數存儲引擎,例如InnoDB ...
  • 綠幕摳圖是影視製作過程中常見的技術手段,常用於視頻中摳除並替換背景,通過後期加工實現視頻剪輯製作的更多可能性。然而,綠幕摳圖技術製作成本費時費力,無法應用於日常生活。 華為視頻編輯服務近期上線目標分割能力,可通過AI智能摳圖精細化分割視頻中的目標物體,並且不局限於特定的物體類別,在主體明確、背景相對 ...
  • DAY01 電腦的介紹 特點: 1.可以進行數值計算,可以進行邏輯計算 2.具有存儲記憶功能 硬體:看得見,摸得著的 顯示器,主機,存儲器 軟體:看得見,摸不著的 系統軟體:操作系統:windows、Linux、UNIX等 應用軟體:各類app C/S架構和B/S架構 1.C/S架構:需要安裝 a ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...