1.string类是属于java.lang.String:关于字符串处理的类,这个类封装了很多方法,用来支持字符串的操作
2.java.lang包里面的类是不需要导入的,而其他的包里面的类要采用import关键字导入才可以使用
3.创建字符串的常见3+1种方法:
三种构造方法:
1).public String(),创建一个空白字符串,不含有任何内容
2).public String(char[] array) ,根据字符串的内容,来创建对于的字符串
* char c[]={‘h‘,‘e‘,‘l‘,‘l‘,‘o‘};
* String str=new String(c); //用字符数组创建字符串
3).public String(byte[] array) ,根据字节数组的内容,来创建对应的字符串
一种直接创建:
4).String str; //声明了对象,null指针,内容为空,不指向任何对象
String str="这是一个字符串"; //直接用字符串常量来初始化字符串
4.字符串运算符+ (字符串连接运算符):其他类型数据于字符串左右两边进行+时会自动转化成字符串(自左向右进行运算)
5.字符串的比较:
字符串是引用数据类型,所以字符串的比较不能用==,而要使用String类的采用方法equals()进行判断
( str1 == str2 //用于比较两个对象的引用是否相同(判断两个对象所存储的对象的首地址是否相同)即判断是否为同一个对象)
比较值:1).【区分大小写】 str1.equals(str2) //表示判断str1和str2的内容(值)是否相同
"abc".equals(str2) //有常量的时候将常量写在前面
2).【忽略大小写】public boolean equalsIgnoreCase(String str)
6.字符串比较,在内存区进行解释:
String str3="abc";
String str4="abc";
* 1).因为字符串是引用数据类型,使用变量String str3是存放在栈内存当中的,且保存的是地址值,指向字符串常量池的对象
* 2).在JVM堆内存当中有字符串常量池,字符串对象就在字符串常量池当中,同样保存的是地址值,指向"abc"byte字节数组
* 3).而"abc"用到底层的byte字节数组进行表示,存放于字符串常量池之外的堆内存当中
* 4).【只有】双引号直接写的字符串在常量池当中,那么String str4的就会到常量池在找,而正好常量池中有"abc"(str3),直接拿来用、
char[] charArray = {‘a‘,‘b‘,‘c‘};
String str5 = new String(charArray);
* 5).char[] charArray存放于栈内存当中,其内存地址是指向是在常量池之外的堆内存当中的char型的数组
* 6).new了就不在池当中了,根据(charArray),堆内存当中的char型的数组会转换成byte字节数组,
并且在堆内存当中创建String对象,其内存地址指向byte字节数组
* 7).在栈内存的变量str5存放的内存地址指向堆内存的String对象
* 【注意】直接new的对象不在常量池里
7.API当中说:Java程序中所有字符串字面值(如"abc")都作为此类的实例实现
其实是说:程序当中所有的双引号字符串,都是String类的对象(就算没有new,也照样是)。
8.字符串的特点:
* 1).字符串的内容永不改变。
* 2).正是因为字符串的内容永不改变,所有字符串是可以共享使用的
* 3).字符串效果上相当于是char[]字符数组,但是底层原理的byte[]字节数组
9.String类的常用方法:
String类当中有哪些是获取的常用的方法:
* 1).public int Length();
* 获取字符串当中含有的字符个数,拿到字符串的长度。
* 2).public String concat(String str);
* 将当前字符串和参数字符串拼接成为返回值新的字符串
* 3).public char charAt(int index);
* 获取指定索引位置的单个字符。(索引从0开始)
* 4).public int indexOf(String str);
* 查找参数字符串在本字符串当中首次出现的索引位置,如果没有则返回-1值
字符串的截取方式:
* 1).public String substring(int index);
* 截取从参数的位置一直到字符串末尾,放回新字符串
* 2).public String substring(int begin,int end);
* 截取从begin开始,一直到end结束,中间的字符串
* 【备注】[begin,end)包含左边,不包含右边
字符串中字符的替换:
*public String replace(char oldChar, char newChar)
字符串大小写的转换:
*public String toLowerCase() 转换位小写
*public String toUpperCase() 转换位大写
原文:https://www.cnblogs.com/JIA1314JJ/p/13285482.html