简介
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);