全部產品
Search
文件中心

OpenSearch:CString

更新時間:Jul 13, 2024

簡介

CString類在包cava.lang中,用於標識一個字串常量,比如”opensearch”。CString對象建立之後不能進行修改。

建構函式

函數原型

函數簡介

CString(byte[] value, int offset, int count)

根據一個字元數組建立string

CString(CString original)

CString的拷貝建構函式

函數列表

函數原型

函數簡介

int length()

返回字串的長度

boolean isEmpty()

判斷是否為空白字串

byte byteAt(int index)

返回index位置的內容

boolean equals(CString anotherString)

判斷兩個字串是否相同

boolean equalsIgnoreCase(CString anotherString)

判斷兩個字串是否相同,忽略大小寫

int compareTo(CString anotherString)

比較兩個字串,並返回第一個不相同字元的詞典序之差

int compareToIgnoreCase(CString anotherString)

比較兩個字串,並返回第一個不相同字元的詞典序之差,忽略大小寫

boolean startsWith(CString prefix, int toffset)

檢查字串從指定位置開始是否以指定字串開頭

boolean startsWith(CString prefix)

檢查字串是否以指定字串開頭

boolean endsWith(CString suffix)

檢查字串是否以指定字串結尾

int indexOf(CString str, int fromIndex)

從指定位置開始,返回指定字串在字串中第一次出現的位置

int indexOf(CString str)

返回指定字串在字串中第一次出現的位置

int lastIndexOf(CString str, int fromIndex)

返回指定字串在字串中最後一次出現的位置,可以從指定位置開始向前搜尋

int lastIndexOf(CString str)

返回指定字串在字串中最後一次出現的位置

CString substring(int beginIndex, int endIndex)

返回這個字串的子字串,可以設定起止位置

CString substring(int beginIndex)

從指定位置開始返回這個字串的子字串

CString[] split(CString str)

將字串按照分隔字元分開

CString[] split(CString str, int limit)

將字串按照分隔字元分開

CString trim()

去除字串開始和結尾的空格

void getChars(byte[] dst, int dstBegin)

將字串拷貝至數組中

void getChars(int srcBegin, int srcEnd, byte[] dst, int dstBegin)

將字串拷貝至數組中

函數詳情

CString(byte[] value, int offset, int count)

根據一個數組建立一個字串,在構建字串的過程中也可以採用一個簡單的方法:CString test = “abc”。這個類似於下面的語句:

byte[] value = {(byte)'a', (byte)'b', (byte)'c'};
CString test = new CString(value, 0, 3);

參數列表:value — 儲存字串的數組offse — 第一個字元的起始位置,如果offse小於0,cava會拋異常count — 字串的長度,如果count小於0,cava會拋異常

CString(CString original)

從一個CString對象拷貝構造一個CString對象參數列表:original — 待拷貝的CString對象

程式碼範例:

CString a = "abc";
CString b = new CString(a);

int length()

擷取字串的長度傳回值:返回字串的長度,傳回值不小於0。

程式碼範例:

CString a = "abc";
if (a.length() > 5) {
    // do something
}

boolean isEmpty()

判斷字串是否為空白。傳回值:字串長度為0時返回true,否則返回false。

程式碼範例:

CString a = "abc";
if (!a.empty()) {
    // do something
}

byte byteAt(int index)

擷取字串指定位置的字元,index的取值範圍為[0, lenght()-1]。如果index大於字串的長度,會產生數組越界訪問異常。參數:index — 待返回的字元下標傳回值:返回index位置的字元。

程式碼範例:

CString a = "abc";
byte b = a.byteAt(1);
byte b = a.byteAt(3); //invalid

boolean equals(CString anotherString)

比較兩個字串是否相同,如果相同返回true,否則返回false。anotherString為null時會觸發null 指標訪問異常。參數:anotherString — 需要進行比較的字串。傳回值:相同時返回true,否則返回false。

程式碼範例:

CString a = "abc";
CString b = "abc";
if (a.equals(b)) {
    // do something
}

boolean equalsIgnoreCase(CString anotherString)

比較兩個字串是否相同,並且忽略大小寫。如果兩個字串都轉成大寫(或者小寫)之後,它們相同則返回true,否則返回false。anotherString為null時會觸發null 指標訪問異常。參數:anotherString — 需要進行比較的字串。傳回值:相同時返回true,否則返回false。

程式碼範例:

CString a = "abc";
CString b = "abc";
if (a.equalsIgnoreCase(b)) {
    // do something
}

int compareTo(CString anotherString)

比較兩個字串,返回第一個不相同的字元的字典序之差。參數:anotherString — 需要進行比較的字串。傳回值:返回第一個不相同的字元的字典序之差,如果兩個字串相同,返回0。如果兩個字串中一個是另一個的首碼,則返回兩者長度之差。

程式碼範例:

CString a = "abcde";
CString b = "abc";
CString c = "efg";
int v1 = a.compareTo(b); //v1為a.length()-b.length() 
int v2 = a.compareTo(c); //v2為'a' - 'e'
int v3 = a.compareTo("abcde"); //v3為0

int compareToIgnoreCase(CString anotherString)

比較兩個字串,返回第一個不相同的字元的字典序之差,在比較之前統一將字串轉換成大寫(或者小寫)。參數:anotherString — 需要進行比較的字串。傳回值:返回第一個不相同的字元的字典序之差,如果兩個字串相同,返回0。如果兩個字串中一個是另一個的首碼,則返回兩者長度之差。

程式碼範例:

CString a = "abcde";
int v1 = a.compareToIgnoreCase("AbcDe"); //v1為0

boolean startsWith(CString prefix, int toffset)

判斷指定的子串在字串的指定位置是否出現。參數:prefix — 待匹配的子串toffset — 開始匹配的位置傳回值:出現返回true,否則返回false。

程式碼範例:

CString a = "abcde";
boolean v1 = a.startsWith("bcd", 1); //v1為true
boolean v2 = a.startsWith("bcd", 2); //v2為false

boolean startsWith(CString prefix)

判斷指定的子串是否是字串的首碼,相當於startsWith(prefix, 0)。參數:prefix — 待匹配的子串傳回值:prefix為字串的首碼返回true,否則返回false。

程式碼範例:

CString a = "abcde";
boolean v1 = a.startsWith("abc"); //v1為true
boolean v2 = a.startsWith("bcd"); //v2為false

boolean endsWith(CString suffix)

判斷指定的子串是否是字串的尾碼。參數:prefix — 待匹配的子串傳回值:prefix為字串的尾碼返回true,否則返回false。

程式碼範例:

CString a = "abcde";
boolean v1 = a.endsWith("de"); //v1為true
boolean v2 = a.endsWith("cd"); //v2為false

int indexOf(CString str, int fromIndex)

從指定位置搜尋字串,返回子串第一次出現的位置。參數:str — 待匹配的子串fromIndex — 開始搜尋的起始位置傳回值:子串第一次出現的位置,如果子串沒有出現返回-1。

程式碼範例:

CString a = "abcdede";
int v1 = a.indexOf("de", 1); //v1為3
int v2 = a.indexOf("de", 6); //v2為-1

int indexOf(CString str)

返回子串在字串中第一次出現的位置。參數:str — 待匹配的子串傳回值:子串第一次出現的位置,如果子串沒有出現返回-1。

程式碼範例:

CString a = "abcdede";
int v1 = a.indexOf("de"); //v1為3
int v2 = a.indexOf("fg"); //v2為-1

int lastIndexOf(CString str, int fromIndex)

從指定位置反向搜尋字串,返回子串最好一次出現的位置。參數:str — 待匹配的子串fromIndex — 開始搜尋的起始位置傳回值:子串最後一次出現的位置,如果子串沒有出現返回-1。

程式碼範例:

CString a = "abcdede";
int v1 = a.lastIndexOf("de", 5); //v1為3
int v2 = a.lastIndexOf("de", 2); //v2為-1

int lastIndexOf(CString str)

從指定位置反向搜尋字串,返回子串最好一次出現的位置。參數:str — 待匹配的子串fromIndex — 開始搜尋的起始位置傳回值:子串最後一次出現的位置,如果子串沒有出現返回-1。

程式碼範例:

CString a = "abcdede";
int v1 = a.lastIndexOf("de"); //v1為5
int v2 = a.lastIndexOf("fg"); //v2為-1

CString substring(int beginIndex)

從指定位置返回字串的子串。參數:beginIndex — 子串的起始位置傳回值:返回字串的子串,如果beginIndex不合法(小於0,或者大於字串的長度)返回null。

程式碼範例:

CString a = "hello";
CString b = a.substring(3); //b 為"lo"
CString c = a.substring(-1); //c 為null
CString d = a.substring(7); //d 為null

CString substring(int beginIndex, int endIndex)

從指定的起止位置返回字串的子串。參數:beginIndex — 子串的起始位置endIndex — 子串的終止位置傳回值:返回字串的子串,如果beginIndex或者endIndex不合法返回null。

程式碼範例:

CString a = "hello";
CString b = a.substring(3, 5); //b 為"lo"
CString c = a.substring(-1, 3); //c 為null
CString d = a.substring(0, 7); //d 為null

CString[] split(CString str)

將字串按照分隔字元分開,結尾的數組中不包含Null 字元串。參數:str — 分隔字元傳回值:返回分隔之後的子串的數組。

程式碼範例:

CString a = "baaaab";
CString b = "baaaa";
CString c = "aaaab";
CString[] subA = a.split("aa"); //長度為3,分別為"b" "" "b"
CString[] subB = b.split("aa"); //長度為1,分別為"b"
CString[] subC = c.split("aa"); //b 長度為3,分別為"" "" "b"

CString[] split(CString str, int limit)

將字串按照分隔字元分開,通過limit限制返回的數組元素個數,當limit為0時返回結果中會忽略數組結尾為空白的子串。參數:str — 分隔字元limit — 限制返回的字串數組中元素的個數傳回值:返回分隔之後的子串的數組。

程式碼範例:

CString a = "hello";
CString[] b = a.split("l", 1); //b 長度為1

CString trim()

去除字串開始和結尾中的空格。傳回值:返回去除空格之後的字串。

程式碼範例:

CString a = " hello  ";
CString b = a.trim(); //b為"hello"

void getChars(byte[] dst, int dstBegin)

拷貝字串到數組中,函數中不做合法性檢查,所以需要使用者自己保證數組空間足夠。參數:dst — 目標數組dstBegin — 字串在目標數組中的儲存位置

程式碼範例:

byte[] dst = new byte[10];
CString a = "abc";
a.getChars(dst, 0);

void getChars(int srcBegin, int srcEnd, byte[] dst, int dstBegin)

拷貝字串的子串到數組中。參數:srcBegin — 待拷貝的第一個字元的位置srcEnd — 待拷貝的最後一個字元的位置dst — 目標數組dstBegin — 字串在目標數組中的儲存位置

程式碼範例:

byte[] dst = new byte[10];
CString a = "abc";
a.getChars(0, 1, dst, 0);