簡介
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); //invalidboolean 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為0int compareToIgnoreCase(CString anotherString)
比較兩個字串,返回第一個不相同的字元的字典序之差,在比較之前統一將字串轉換成大寫(或者小寫)。參數:anotherString — 需要進行比較的字串。傳回值:返回第一個不相同的字元的字典序之差,如果兩個字串相同,返回0。如果兩個字串中一個是另一個的首碼,則返回兩者長度之差。
程式碼範例:
CString a = "abcde";
int v1 = a.compareToIgnoreCase("AbcDe"); //v1為0boolean 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為falseboolean 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為falseboolean endsWith(CString suffix)
判斷指定的子串是否是字串的尾碼。參數:prefix — 待匹配的子串傳回值:prefix為字串的尾碼返回true,否則返回false。
程式碼範例:
CString a = "abcde";
boolean v1 = a.endsWith("de"); //v1為true
boolean v2 = a.endsWith("cd"); //v2為falseint 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為-1int indexOf(CString str)
返回子串在字串中第一次出現的位置。參數:str — 待匹配的子串傳回值:子串第一次出現的位置,如果子串沒有出現返回-1。
程式碼範例:
CString a = "abcdede";
int v1 = a.indexOf("de"); //v1為3
int v2 = a.indexOf("fg"); //v2為-1int 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為-1int lastIndexOf(CString str)
從指定位置反向搜尋字串,返回子串最好一次出現的位置。參數:str — 待匹配的子串fromIndex — 開始搜尋的起始位置傳回值:子串最後一次出現的位置,如果子串沒有出現返回-1。
程式碼範例:
CString a = "abcdede";
int v1 = a.lastIndexOf("de"); //v1為5
int v2 = a.lastIndexOf("fg"); //v2為-1CString 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 為nullCString 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 為nullCString[] 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 長度為1CString 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);