欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA基础-String及其包装类

程序员文章站 2022-05-21 12:13:49
目标:理解string,懂得应用,理解一些概念性常识的东西String:是JAVA中的引用类型,开发中经常经常要用的~String字符串一旦被赋值,就是不可改变的。每次被重新赋值时,都是在内存地址中创建了新的对象,指向了新的地址。String a = new String("Jason");String b = "Jason";System.out.println(a == b); //falseSystem.out.println(a.equals(b)); //true上述的这个例子,...

目标:理解string,懂得应用,理解一些概念性常识的东西

String:

是JAVA中的引用类型,开发中经常经常要用的~String字符串一旦被赋值,就是不可改变的。每次被重新赋值时,都是在内存地址中创建了新的对象,指向了新的地址。

String a = new String("Jason");
String b = "Jason";
System.out.println(a == b); //false
System.out.println(a.equals(b));  //true

上述的这个例子,说明的问题:当我们用“==”进行比较的时候,其实他比较是两个字符串的内存地址值,但是!new出来的对象,他存在我们的堆内存中。意思就是“a”他存在我们的堆内存,而“b”存在字符串池中,两个地址不一致,所以就会为false,然后equals比较的是内容是否相同。自然为true;

字符串常用的一些API(不用特别记,用着用着就熟悉了):

判断方法:
boolean equals(String s);
boolean isEmpty();//这里不能用于判断String为null的情况,会报空指针,仅相当于判断长度是否为0
boolean equalsIgnoreCase(String s);//字符串是否相等忽略大小写
boolean sartsWith(String s);//是否以s开头
boolean endsWith(String s);//是否以s结尾
boolean contains(String s);//是否包含s


获取方法:
int length();//获取长度
int indexOf(String s);//返回s在字符串中第一次出现的索引
int indexOf(String s,int fromIndex);//返回s在字符串中从指定位置起第一次出现的索引
char charA(int index);//返回字符串中指定位置的字符
String substring(int index);//从指定位置开始截取字符串,默认到结尾
String substring(int fromIndex,int endIndex);//截取指定位置区间的字符串,包左不包右

转换方法:
byte[] getBytes();//转成字节数组
char[] toCharArray();//转成字符数组
String toLowerCase();//转换成小写
Sting toUpperCase();//转换成大写
static String valueOf(char[] c);//把字符数组转换成字符串
static String valueOf(int i);//int型转String
String concat(String s);//把s拼接入字符串末尾

其它方法:
String replace(char o,char n);//替换字符
String replace(String old,String new);//替换指定字符串
String trim();//去除字符串头尾空格

转换方法:
转成int:Integer.parseInt("111");
转成string:String.valueOf("100");

StringBuffer和StringBuilder:

再来讲讲这两个,因为我们的String字符串是不可变的,但是我们在开发的时候如果频繁的要进行字符串的拼接,那么用String就会很浪费资源,不停地创建新的对象,所以就有了StringBuffer和StringBuilder,这两者都是可以对字符串进行拼接。

他们两者得区别是:StringBuffer是线程安全的,保证数据同步,但是相对效率就比较低,StringBuilder就不是线程安全的。为有些童鞋记不住哪个安全容易弄混,就记得“爸爸是安全的”,就是StringBuffer(有点搞笑…不过背面试题多了会混的时候我是这么记的)…

本文地址:https://blog.csdn.net/MJH_JASON/article/details/107136322