(1) StringBuilder:可变字符串类型(字符串:底层是字符数组,及其对数组的操作)
特点:
(1)此类型是final修饰的
(2)没有重写equals方法
(3)此类型提供的大多数方法都带有返回值
即:return this,返回同一个地址,也即同一个对象
构造器:
@ StringBuilder();
在main方法里面写法:
StringBuilder str = new StringBuilder();//构造器
构造了一个空的StringBuilder对象,初始容量为16.输出时输出的其实是16个"",引号里面的内容,因为里面没有内容,因此不显示输出信息;
注意:输出为null时的条件是对象的地址信息为null,输出为null
@StringBuilder(String str);
创建一个指定字符串的StringBuilder对象
常用方法:int length();
返回有效字符的长度
如:
StringBuilder str= new StringBuilder();
System.out.println(str.length());//输出的是str的有效长度,虽然StringBuilder的初始容量为16,但是其有效字符是0个,所以输出为0;
StringBuilder str1 = new StringBuilder("helloworld");
System.out.println(str1.length());输出结果为10,有效字符长度为10;
StringBuilder append(Type a)://将参数a追加到StringBuilder对象里,返回此对象 对象还是这一个对象,只不过加了数据元素,因为StringBuilder是一个可变字符串类型
如:
StringBuilder str = new StringBuilde("你好);
String str1 = str.toString();
System.out.println(str1.toString());//System.out.println(str.toString().toString());这两段代码相当于最后一段代码,输出结果相同
这里的后缀toString()可以省略不写,因fanhingBuilder类型中重写了toString方法,不然不写
String(char[] ch)将字符数组转化成字符串对象,
如:char[] chs = {'h','e','l','l','o'};
String str = new String(chs);
System.out.println(str);//输出结果为hello,将字符拼接成字符串对象
@String(String str);
指定一个字符串字面量创建一个字符串对象
String str = new String("hello world");//输出结果为hello world,
@int length();//返回字符串对象的字符个数
如:
String str = new String("hello world");
System.out.println(str.length());//输出的是字符串的长度,空格也算一位
@char charAt(int index);
返回此字符数组指定下标处的索引处的字符,
例如:
String str =new String("你好,世界");//获取数组下标为3的字符
char chs = str.charAt(3);
System.out.println(chs);//输出结果为,还有一种写法
System.out.println("你好,世界".charAt(3));
@String concat(String another);
j将指定字符串another拼接到此字符序列末尾段,返回新对象
例如:
String str = new String("hello");
String str1 = str.concat("world");//输出结果str1为helloworld
@boolean startWith(String prefix)/endWith(String suffix);
查看此字符串是否以prefix为前缀/以suffix为后缀
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个网址:");
String str = sc.next();
if(str.startWith("https")){
System.out.println("这是一个安全网站:");
}else{
System.out.println("这不是一个安全网站");
}
System.out.println("请输入一个网站:");
String str1 = sc.next();
if(str1.endWith("edu")){
System.out.println("这是一个教育网站");
}else{
System.out.println("这不是一个教育网站");
}
用于判断前缀或后缀是否符合字符串,
@byte[] getBytes();
将此字符串按照默认字符集编码成字节序列,返回一个新的字节数组
String str = "小明";
byte[] bs = str.getBytes();
Ststem.out.println(Arrays.toString(bs));//这里要使用toString方法,因为这是一个byte类型的数组对象,不用toString方法返回的是地址信息
@byte[] getBytes(String charset);
这里是用按照指定的字符编码集来对字符串进行编码
,返回新的字节数组
===================================================================
@查找字符串中字符或子字符串的位置
int indexOf(int ch);
返回字符ch第一次在字符串中出现的位置;
String str = "that girl";
int ch = str.indexOf('t');
System.out.println(ch);//还有一种写法
System.out.println(str.indexOf('t'));//这种是返回t在字符串中第一次出现的位置
如果我们想要返回t在字符串中的第二次下标
int index = str.indexOf('t',str.indexOf('t')+1)
表示从第一个t出现的下一个下标搜索第二个t的下标.
注意:如果返回的值是-1,表示我们想要搜索的字符在字符串中没有出现过
*******查找字符串数组下标
int indexOf(String str);
int indexOf(String str,int fromIndex);
表示我们要搜索的下标str从fromIndex下标开始第一次出现的位置
String str = "no zuo mo die";
int a = str.indexOf("zuo");
System.out.println(a);
截取子字符串的方法:
String subString(int beginIndex)
截取从下标beginIndex处到尾端的字符串
String subString(int beginIndex,int endIndex);
截取下标为beginIndex到endIndex处下标的字符串
字符串转成字符数组的方法:
(1)char[] toCharArray(String str);
将指定字符串转化成字符数组
将字符串中的字母转化成大写/小写
String toUpperCase()//将字符串中的所有小写字符转化成大写字母
String toLowerCase()//将字符串中所有的大写字母转化成小写字母
前后去空格的方法:
String trim();
将字符串中前后空格去掉,中间的不去,属于字符元素
将任意参数变成字符串类型
static String valueOf(Type a);//可以是常量,也可以是布尔类型等任意类型