String
一、特点
1.字符串(String):是java中最常用的类,由final修饰;
2.字符串表示一个字符序列,是常量,即定义后不能改变;
3.为了提升性能,java对String进行了一些优化处理(String pool);
二、构造方法
使用最多的是字面值,优点是方便,高效;
String str = "字符串";
三、方法
1.int 字符串.length();//返回字符串长度;
2.int 字符串.indexOf();//返回某个字符的位置;
int 字符串.indexOf(string subString);//返回子串位置;
3.char charAt(int);//根据索引位置返回一个字符;
4.String subString(int beginIndex);//返回从指定位子开始的子串;
String subString(int beginIndex,int endline);//返回指定位置的子串,左闭右开;
5.String contract(String str);//连接字符串,返回新串;
6.String[] split(String);//将字符串进行拆分;
7.String trim()
8.String toLowerCase();
9.toUpperCase();
10.int compareTo(String anoString)://比较两个字符串的大小;
int compareToIgnoreCase(String anoString)://忽略大小写后,比较两个字符串的大小
11.boolean equals(String anoSreing);//内容是否相等;
bolean equalsIgnoreCase(String anSreing);//忽略大小写;
12.startswith(String prefix);//是否以某个前缀开头;
13.endwith(String suffix);//是否以某个后缀结尾;
四、字符串池
1.字符串(String类)的特点:最长用的类,常量不能改变;
(注意:因为字符串是常量,所以给字符串第二次赋值就是重新创建,并且字符串调用String方法时,会创建新字符串作为输出,对原字符串无丝毫改变;)
2.java对String做了一个优化,即字符串池;
限制:如果想利用字符串池,必须使用字面值的形式定义字符串;
原理:使用字面值定义(String s = "无敌");时,直接在字符串池中创建,以后再用字面值定义时,如果字符串值相同,则不再创建新的,直接指向字符串池中已创建的;
使用创建对象定义时(String s = new String(“无敌”):,先在字符串池中寻找有无相同值,若有不进行任何操作,若无先在字符串池中创建,然后再到堆中创建,倘若以后再用创建对象定义时,重复以上操作,但仍要在堆中重新创建,不能指向堆中曾经已有的相同值;
理解:在Java中,字符串的相等性比较并不直接使用"=="运算符,而是使用".equals()"方法。使用"=="运算符会比较两个对象的引用是否相同,而不是比较它们的内容是否相同。
判断
== :表示地址是否相同;
equals :表示字符串值是否相同;
五、字符串替换
replace
source = "hello world";
String replace(String oldString, String newString);//替换所有字符串,返回新串;
String replaceAll(String regex,String newString);//替换所有的字符串,可以使用正则表达式,返回新串;
String replaceFirst(String regex,String newString);只替换第一个;
String replace(char oldChar,char newChar);替换字符;
六、字符串与基本数据类型的转换
1.String-->基本数据类型
包装类的parseXXX();/强制转换为......;
String a = "99"; int i = Integer.parseInt(a); System.out.println(a); String b = "false"; boolean c = Boolean.parseBoolean(b); System.out.println(c);
2. 基本数据类型-->String
使用包装类的toString()方法或者String.valueOf()方法进行转换。
int i = 99; String a = Integer.toString(i); System.out.println(a); boolean c = false; String b = String.valueOf(c); System.out.println(b);
注意:我们所创建的字符串实际上就是一个字符型的数组,java自动完成了封装;
String s = "hello world";