String类
String类包括的方法可用于检查序列的单个字符,比较字符串,搜索字符串,提取子字符串,全部转换大小写
字符串是常量, 不是基本数据类型 ,它的值在创建后不能更改 Stringbuffer 字符串缓冲区支持可变的字符串
一 创建字符串的几种形式
一 通过构造方法创建字符串
public class Demo1 {
public static void main(String[] args) {
//创建字符串
// 通过构造方法
String str1 = new String("计科");
System.out.println(str1);
String str2 = "计科";// 直接创建字符串
System.out.println(str2);
char a[] = {'a', 'b', 'c', 'd'};//通过数组的形式创建字符串
String str3 = new String(a);
System.out.println(str3);
String str4 = new String(a, 0, a.length);//通过数组 从索引位置0开始到数组的指定长度创建
System.out.println(str4);
}
}
输出的结果依次是:
计科
计科
abcd
abcd
如果定义的字符串为空(String str=“”) 说明字符串为空串 不是null
二 String类的常用方法汇总
- length 返回值int类型 字符串的长度(长度自然int型)
String str2 = "";
System.out.println(str1.length());
System.out.println(str2.length());
结果为
14
0
- isEmpty 返回值为boolean型 判断是否为空
System.out.println(str1.isEmpty()); //false
System.out.println(str2.isEmpty()); //true chartAt 返回指定索引位置的char值
System.out.println(str1.charAt(2));//学 索引位置从0位置开始
System.out.println(str1.charAt(0));//我 字符串第一个位置
当我们用System.out.println(str1.charAt(str1.length())); 查找指定字符时 会报错 因为字符串数组从0开始 比字符串长度小1 会报长度越界错误
- codePointAt(int index) 返回指定索引位置的字符(Unicode)
- codePointBefore(int index) 返回指定索引位置之前的相邻位置的Unicode (5位置 之前就是4位置)
- getChars
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将指定字符串存入一个新的数组
char a [] = new char[6];
str1.getChars(3,5,a,0);
System.out.println(a);
3 5 代表从字符串的起始位置3 到 5 位置的字符 复制到a的字符数组里
- getBytes 将字符串转换成字节序列 存入新的byte数组里
byte a[] = str1.getBytes();
System.out.println(a);
try {
byte b[] = str1.getBytes("utf-8");将str1字符串按照uft-8编码集转换字节存入数组中
System.out.println(b);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
输出结果为
[B@5cad8086
[B@6e0be858
关注下一篇 总结二(互相关注 学习)