字符与字符串
很多的编程语言都会强调利用字符数组来描述字符串,实际上在Java里面也存在有类似的概念,在String类中也提供有一系列与字符操作有关的方法
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public String(char[] valus) | 构造 | 将全部的字符数组作为String的内容 |
2 | public String(char[] valus,int offset, int count) | 构造 | 将部分的字符数组变为字符串,设置字符数字的开始索引以及字符个数 |
3 | public char charAt(int index) | 普通 | 返回指定索引位置上的字符 |
4 | public char[] toCharArray() | 普通 | 将字符串以字符数组的形式返回 |
字节与字符串
除了字符可以与字符串进行互相转换之外,字节也可以进行转换,但是这样的转换往往出现在实际开发当中
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public String(byte[] bytes) | 构造 | 将全部字节数组变成字符串 |
2 | public String(byte[] bytes, int offset, int length) | 构造 | 将部分字节数组变为字符串,设置字节数组的开始索引以及字符个数 |
3 | public byte[] getBytes() | 普通 | 将字符串变为字节数组 |
4 | public byte[] getBytes(String charsetName) throws UnsupportedEncodingExecption | 普通 | 编码转化 |
字符串比较
我们知道字符串比较有一个equals()方法,但是此方法本身是属于区分大小写的,对于字符串的比较实际上还有其他方法
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public boolean equals(String anObject) | 普通 | 区分大小写的字符串比较 |
2 | public boolean equalsIgnoreCase(String anotherString) | 普通 | 不区分大小写的字符串比较 |
3 | public int compareTo(String anotherString) | 普通 | 比较字符串大小 |
4 | public int compareToIgnoreCase(String str) | 普通 | 不区分大小写比较 |
在进行字符串相等的比较操作之中,最为关键的一个方法时:
compareTo();
,这个方法返回一个int型数据有三种结果:大于(>0)、小于(<0)、等于(=0)在
compareTo();
与compareToIgnoreCase();
方法中是依据编码相减得来的结果,所以利用compareTo();
方法的返回值就可以区分字符串的大小写关系
字符串查找
从一个完整的字符串之中查找一些子字符串,而可以实现这种字符串查找功能的方法有如下几种
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public boolean contains(String s) | 普通 | 判断某一个字符串是否存在 |
2 | public int indexOf(String str) | 普通 | 取得某一个字符串的位置,取不到返回-1 |
3 | public int indexOf(String str, int fromIndex | 普通 | 从指定索引位置开始检索子字符串位置,找不到就返回-1 |
4 | public int lastindexOf(String str) | 普通 | 从后向前检索子字符串位置,找不到就返回-1 |
5 | public int lastindexOf(String str,intfromIndex)普通 | 从指定位置由后向前检索子字符串位置,找不到就返回-1 | |
6 | public boolean startsWith(String prefix) | 普通 | 判断是否以某个字符串开头 |
7 | public boolean startsWith(String prefix, int toffest) | 普通 | 从指定位置判断是否以某个字符串开头 |
8 | public boolean endsWith(String suffix) | 普通 | 是否以某个字符串结尾 |
如果要查找中间的内容,基本上使用contains()
方法,且在实际应用中contains();
、startsWith();
、endsWith();
方法较为常用
字符串截取
可以通过一个完整的字符串截取里面的子字符串,方法如下
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public String substring(int beginIndex) | 普通 | 从指定索引位置截取到末尾 |
2 | public String substring(int beginIndex,intendIndex) | 普通 | 截取指定索引范围的内容 |
实际的工作之中,这种截取操作很常用
字符串替换
将一个指定的字符串替换成其他内容,方法如下:
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public String replaceAll(String reges, String replacement) | 普通 | 字符串的全部替换 |
2 | public String replaceFirst(String reges, String replacement) | 普通 | 只替换第一个内容 |
实际上使用替换功能可以人为的消除空格
字符串拆分
可以将一个完整的字符串根据指定的内容进行拆分,拆分后的结果就是对个字符串,也就是一个字符串的对象数组,方法如下
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public String[] split(String regex | 普通 | 全部拆分 |
2 | public String[] split(String regex, int limit) | 普通 | 部分拆分 |
“.”不能进行拆分,因为其是正则表达式的内容,如需拆分首先先进行转义,使用“\\.”
reges
属于正则表达式的范畴
其他操作方法
以上是一些可以进行归类的操作方法,还有一些较为细小的操作方法如下
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public int length() | 普通 | 取得字符串的长度 |
2 | public boolean isEmpty() | 普通 | 判断是否为空字符串 |
3 | public String toLowerCase() | 普通 | 转小写 |
4 | public String toUpperCase() | 普通 | 转大写 |
5 | public String trim() | 普通 | 去掉左右空格,但是不去掉中间空格 |
6 | public String concat(String ste) | 普通 | 字符串连接,与“+”一样 |
Java使用了Unicode编码,所以中文和英文长度相同,这一点极大地方便了开发者。但在整个String类设计中并没有提供有类似于数据库中的initcap();
函数的功能
自己实现首字母大写的操作形式
代码如下:
class Demo {
public static void main(String[] args) {
String str = "name";
System.out.println(initcap(str));
}
public static String initcap(String str){
if (str.length() == 0){
return null;
}
return str = str.substring(0,1).toUpperCase()+str.substring(1);
}
}