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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...