CString

简介

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时会触发空指针访问异常。参数:anotherString — 需要进行比较的字符串。返回值:相同时返回true,否则返回false。

代码示例:

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

boolean equalsIgnoreCase(CString anotherString)

比较两个字符串是否相同,并且忽略大小写。如果两个字符串都转成大写(或者小写)之后,它们相同则返回true,否则返回false。anotherString为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)

判断指定的子串是否是字符串的后缀。参数:suffix — 待匹配的子串返回值:suffix为字符串的后缀返回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)

将字符串按照分隔符分开,结尾的数组中不包含空字符串。参数: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);