四,String类

1.String实例化

String本身是一个类,有两种实例化方法.

  • String str1 = “hello”;

  • String str2 = new String(“hello”);

1.1 string的比较:

str1 == str2 ; //这个实际比较的是两个string的内存地址的值.

str1.equals(str2); //这个比较的两个字符串的内容是否相同.

注 :一个字符串实际上就是一个 String的匿名对象 .


1.2两种实例化的区别:

  • String str = “hello”;

这种方式实例化的好处是之后在声明字符串的时候发现内容一样,则不会重新开辟空间,而是从内存池中取出数据继续使用。

  • String str2 = new String(“hello”);

这句程序会在堆内存中开辟一块内容为abc的匿名空间,然后再new一块空间,赋值abc,并有str指向这里,这时候匿名空间由于没有栈指向成为垃圾,然后被回收。

可以发现,程序开辟了两个空间,与前一个相比慢多了。所以在开发中绝对不能使用关键字new实例化String类。而且,如果直接使用赋值的方式也可以减少堆内存的开销。

:代码 str += “world”;这个代码执行实际上是将str的指向从”hello”断开,重新指向”hello world”,在代码中要尽量避免这种指向的频繁重新指向.

2.String的常用操作方法

2.1字符与字符串

一个字符串就是表示一组字符

  • public char charAt(int index) //找出指定位置的字符

  • public char[] toCharArray() //将字符串变为字符数组

  • public String(char[] value,int offset,int count) //将字符数组变为字符串,offset和count不写表示全部转换.

举例:

String str = “hello”; char c = str.charAt(1);

String str = “hello”; char c[] = str.toCharArray();

String str1 = new String(c); String str1 = new String(c,0,3);

2.2字节与字符串

public byte[] getBytes() //String到字节数组

public String(byte[] bytes,int offset,int length) //字节数组到String,offset和length不写则全转.

举例:

String str = “hello”; byte b[] = str.getBytes();

String str1 = new String(b); String str1 = new String(b,0,3);

2.3String的操作方法

判断String的开头和结尾

public boolean startsWith(String prefix) //是否以 prefix开头

public boolean endsWith(String suffix) //是否以suffix结尾

替换操作:

public String replaceAll(String regex,String replacement)

例如:

String str = “hello”; String str2 = str1.replaceAll(“o”,“e”);
截取操作 :

public String substring(int beginIndex,int endIndex) //没有endIndex表示从beginIndex全部截取.

例如:

String str = “hello”; String str2 = str1.substring (1,3);
拆分操作 :

public String[] split(String regex)

例如:

String str = “hello”; String str2[] = str1. Split (“ ”); //按空格拆分
查找操作 :

public int indexOf(String str,int fromIndex) //从 fromIndex开始,有则返回位置,无返回-1,fromIndex可以去掉,表示查找全部.

public boolean contains(String s)

其他操作:

去掉左右空格:public String trim()

取得字符串长度: public int length()

转大写: public String toUpperCase()

转小写: public String toLowerCase()



JAVA学习笔记系列

--------------------------------------------

                      联系方式

--------------------------------------------

        Weibo: ARESXIONG

        E-Mail: aresxdy@gmail.com

------------------------------------------------

转载于:https://my.oschina.net/u/2288529/blog/397632

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值