string裡的IndexOf、LastIndexOf、Substring的詳解(意義和用法)
今天遇到擷取字串的問題,在網上查了IndexOf、LastIndexOf、Substring這三種擷取字串的使用總結如下:
String.IndexOf
String.IndexOf 方法 (Char, Int32, Int32)
報告指定字元在此例項中的第一個匹配項的索引。搜尋從指定字元位置開始,並檢查指定數量的字元位置。
String.IndexOf(value, startIndex, count)
引數
value:要查詢的 Unicode 字元。
startIndex:搜尋起始位置。
count:要檢查的字元位置數。
返回值(Int32):
如果找到該字元,則為 value 的索引位置;否則如果未找到,則為 -1。
String.LastIndexOf
String.LastIndexOf 方法
報告指定的 Unicode 字元或 String 在此例項中的最後一個匹配項的索引位置。
名稱 | 說明 |
String.LastIndexOf (Char) | 報告指定 Unicode 字元在此例項中的最後一個匹配項的索引位置。 |
String.LastIndexOf (String) | 報告指定的 String 在此例項內的最後一個匹配項的索引位置。 |
String.LastIndexOf (Char, Int32) | 報告指定 Unicode 字元在此例項中的最後一個匹配項的索引位置。該搜尋從指定字元位置開始。 |
String.LastIndexOf (String, Int32) | 報告指定的 String 在此例項內的最後一個匹配項的索引位置。該搜尋從指定字元位置開始。 |
String.LastIndexOf (String, StringComparison) | 報告指定字串在當前 String 物件中最後一個匹配項的索引。一個引數指定要用於指定字串的搜尋型別。 |
String.LastIndexOf (Char, Int32, Int32) | 報告指定的 Unicode 字元在此例項內的子字串中的最後一個匹配項的索引位置。搜尋從指定字元位置開始,並檢查指定數量的字元位置。 |
String.LastIndexOf (String, Int32, Int32) |
報告指定的 String 在此例項內的最後一個匹配項的索引位置。搜尋從指定字元位置開始,並檢查指定數量的字元位置。 |
String.LastIndexOf (String, Int32, StringComparison) | 報告指定字串在當前 String 物件中最後一個匹配項的索引。引數指定當前字串中的起始搜尋位置,以及要用於指定字串的搜尋型別。 |
String.LastIndexOf (String, Int32, Int32, StringComparison) | 報告指定的 String 物件在此例項內的最後一個匹配項的索引位置。引數指定當前字串中的起始搜尋位置、要搜尋的當前字串中的字元數量,以及要用於指定字串的搜尋型別。 |
示例:
string str = "深圳市盈基實業有限公司國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文";
Label1.Text = str.LastIndexOf("鄧文").ToString();//返回-1
Label1.Text = str.LastIndexOf("鄧").ToString();//返回32
Label1.Text = str.LastIndexOf("鄧",8).ToString();//返回-1
Label1.Text = str.LastIndexOf("鄧",20).ToString();//返回14
Label1.Text = str.LastIndexOf("鄧",33).ToString();//返回32
說明:在指定的範圍內查詢字元,這個範圍是上面的輸入的引數,理解為,從索引0開始到指定的數值位置範圍內查詢最後一個匹配的的字串的位置。示例中,0-8中沒有“鄧”字,所以返回-1,0-20範圍中,有一個“鄧”字在索引14位置上,0-33範圍中有兩個“鄧”字,因為LastIndexOf是返回最後一個匹配項索引位置,所以返32,而不是14。
String.Substring
String.Substring 方法
從此例項檢索子字串。
名稱 | 說明 |
String.Substring (Int32) | 從此例項檢索子字串。子字串從指定的字元位置開始。 |
String.Substring (Int32, Int32) | 從此例項檢索子字串。子字串從指定的字元位置開始且具有指定的長度。 |
示例:
string str = "深圳市盈基實業有限公司國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文";
Label1.Text = str.Substring(11);//返回 “國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文”
Label1.Text = str.Substring(11,7);//返回 “國際通鄧事文*”
Label1.Text = str.Substring(str.Length-3,3); // 返回鄧事文,即截倒數3位字元
總結:
IndexOf、LastIndexOf都是返回一個位置,是個整數值;找不到都返回-1;
IndexOf是從左向右查,LastIndexOf是從右向左查,不管是IndexOf還是LastIndexOf,索引序列都是從左到右的(起始值是0)
Substring是字串擷取,返回值是一個擷取後的字串。
相關推薦
string裡的IndexOf、LastIndexOf、Substring的詳解(意義和用法)
今天遇到擷取字串的問題,在網上查了IndexOf、LastIndexOf、Substring這三種擷取字串的使用總結如下: String.IndexOf String.IndexOf 方法 (Char, Int32, Int32) 報告指定字元在此例項中的第
Elasticsearch增、刪、改、查操作深入詳解(Elasticsearch教程02)|MVP講堂
作者:阿里雲MVP 銘毅 往期內容:死磕 Elasticsearch 方法論:普通程式設計師高效精進的 10 大狠招!Elasticsearch學習,請先看這一篇!(Elasticsearch教程01) 引言:對於剛接觸ES的童鞋,經常搞不明白ES的各個概念的含義。尤其對“索引”二字更是與關係型資料庫混淆
梳理Python 框架之中介軟體詳解(用途和機制)
什麼是中介軟體? 中介軟體是一個Python程式設計師用來處理Django的請求和響應的框架級別的鉤子,它是一個輕量,低級別的外掛系統,用於全域性範圍內改變Django的輸入,輸出。每個中介軟體元件都負責做一些特定的功能。 說的直白一點是中介軟體就是幫我們程式設計
Spring詳解(IOC和AOP)
Spring框架—控制反轉(IOC) 1 Spring框架概述 1.1 什麼是Spring Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE
動態陣列vector詳解(Java和C++)
1.概念描述: vector名為動態陣列 有些時候想開一個數組,但是卻不知道應該開多大長度的數組合適,因為我們需要用到的陣列很可能會根據情況變動。這時候我們就需要用到動態陣列。所謂動態陣列,也就是不定
RabbitMQ 配置檔案詳解(生產者和消費者)
一、rabbitmq 配置檔案 在web 專案開發過程中,一般分為生產者配置檔案和消費者配置檔案。廢話少說,馬上教您整個流程的配置! 1、準備工作:安裝好rabbitmq,並在專案中增加配置檔案 rabbit.properties 內容如下: rmq.ip=192.1
DP動態規劃--例題Decode Ways 、 Longest Palindromic Substring詳解
1題目: A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' ->
Js新增元素、刪除元素誤區詳解【push()和add();splice()和remove()】
新增元素之誤區一,push()和add()使用及區別 push()方法是給陣列尾巴新增一個或多個元素,返回的是新增陣列後該陣列長度。 測試程式碼: var arr = [1,2,3,4]; var arrlength = arr.push(5); console.log("arr
C語言中二維陣列名與陣列地址、首行地址、首行首元素地址關係與區別詳解(初學者必須掌握)
C語言作為很多大學理工科都會學習的語言,作為一種程式設計入門語言。但是相對於其他高階程式語言來說相對是比較難,尤其是指針,不知道有多少莘莘學子都是因為它,從C語言入門到放棄。想當年,筆者在大一學習C語言
js小數相加、相乘失去精度問題解析詳解(最優方案)
var CMX = CMX || {}; /** ** 加 **/ CMX.add = function (arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length; } catc
大資料入門基礎系列之Hadoop1.X、Hadoop2.X和Hadoop3.X的多維度區別詳解(博主推薦)
不多說,直接上乾貨! 在前面的博文裡,我已經介紹了 見下面我寫的微信公眾號博文 歡迎大家,加入我的微信公眾號:大資料躺過的坑 免費給分享 同時,大家可以關注我的個人部
SQL Server事務、隔離級別詳解(二十九)
前言 事務一直以來是我最薄弱的環節,也是我打算重新學習SQL Server的出發點,關於SQL Server中事務將分為幾節來進行闡述,Always to review the basics。 事務簡介 事務是一個工作單元,可能包含查詢和修改資料以及修改資料定義等多個活動
JS中offsetTop、clientTop、scrollTop、offsetTop各位置屬性詳解(含示例圖)
這裡是javascript中製作滾動程式碼的常用屬性 頁可見區域寬: document.body.clientWidth; 網頁可見區域高: document.body.clientHeight; window.innerHeight; 網頁可見區域寬: docume
Mac下Brackets安裝Emmet、Beauty外掛詳解 (步驟配圖)
剛寫完上一篇Sublime安裝外掛,想到Brackets也需要安裝Emmet外掛,於是探索下發現安裝步驟非常簡潔,記錄下 Sublime安裝外掛連結: http://blog.csdn.net/lovechris00/article/details/51678930 下面
Java簡單類、變數詳解(概念和分類、宣告、命名、初始化)
1初識JAVA簡單類 (1)建立第一個Java程式的具體步驟: 第一步:建立一個工程,在Package Explorer空白區域中右擊New->點選Java Project->填寫Project name(例如:javastudy),然後填寫Finish
linux裡的jps命令詳解(檢視java程序)
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一個顯示當前所有java程序pid的命令,簡單實用,非常適合在linux/unix平臺上簡單察看當前java程序的一些簡單情況 jps -q
網路程式設計、常用的通訊協議、Socket套接字程式設計(Socket和ServerSocket)、埠號
網路程式設計: java語言中,提供了一套統一的程式設計介面。很多細節都已經底層化。 所在,可以進行無痛的網路通訊程式設計。 提供的是Socket套接字技術。 --常用的通訊協議: (1)TCP/IP:在通訊之前,需
Windows下VTK6.0.0安裝詳解(CMake使用說明)
操作 工具 generate 其中 con htm 目錄下的文件 ima 新建 操作系統:Windows7,用到工具:Visual studio、CMake。 1.準備工作 VTK下載: 下載最新VTK穩定版(6.0.0,截至2013年7月)http://www.vtk
HTTP協議詳解(真的很經典)
cnp 運用 web應用 media 服務器端 所有 長度 request bad 轉載:http://e7kan.com/?p=264& 引言 HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分布式超媒體信息系統。它於1990年提出,經過幾
PCA (主成分分析)詳解 (寫給初學者) 結合matlab(轉載)
整數 變量 行為 保持 sum osc 入參 函數 data 一、簡介 PCA(Principal Components Analysis)即主成分分析,是圖像處理中經常用到的降維方法,大家知道,我們在處理有關數字圖像處理方面的問題時,比如經常用的圖像的查詢