黑马程序员——java学习笔记--字符串

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、String类

由字符所组成的一串文字符号被称之为字符串。在java中字符串不仅仅是字符数组,而且是String类的一个实例,可以使用String类来构建。

字符串的每个字符是使用Unicode字符来构建。

Sring对象上的几个方法:

length()       取得字符串的长度

equals()      判断源字符串中的字符是否等于指定字符串中的字符

 toLowerCase()      转换字符串中的英文字符为小写

toUpperCase()       转换字符串中的英文字符为大写

 

字符串的本质是由字符数组所组成,所以使用String类声明字符串后,该字符串会具有数组索引的性质。

char  charAt(int  index)           返回指定索引处的字符

int    indexOf(int ch)                 返回指定字符第一个找到的索引位置

int    indexOf(String str)          返回指定字符串第一个找到的索引位置

int    lastIndexOf(int ch)           返回指定字符最后一个找到的索引位置

String   substring(int beginIndex)     取出指定索引处至字符串尾端的子字符串

String   substring(int beginIndex ,int  endIndex)     取出指定索引范围子字符串(包括beginIndex,不包括endIndex)

char[]  toCharArray()                 将字符串转换为字符数组

public class T {  
    public static void main(String[] args) {  
        String str = "hello itmyhome";  
        for(int i=0;i<str.length();i++){  
            System.out.print(str.charAt(i));  
        }  
        System.out.println();  
        System.out.println("第一个o索引位置 : "+str.indexOf("o"));  
        System.out.println("最后一个o索引位置: "+str.lastIndexOf("o"));  
          
        System.out.println("截取从第6个字符至尾:        "+str.substring(6));  
        System.out.println("截取从第6个至第8个字符:"+str.substring(6, 8));  
          
        char charStr[] = str.toCharArray();  
        for (int i = 0; i < charStr.length; i++) {  
            System.out.print(charStr[i]);  
        }  
    }  
}  

执行结果:

hello itmyhome  
第一个o索引位置 : 4  
最后一个o索引位置: 11  
截取从第6个字符至尾:        itmyhome  
截取从第6个至第8个字符:it  
hello itmyhome 

在构建字符串对象时,除了直接在=后使用""来指定字符串常数之外,也可以使用字符数组来构建:

char name[] = {'i','t','m','y','h','o','m','e'};  
String s = new String(name); 


二、不可变字符串

在java中使用字符串有一个非常重要的规则必须记得,一个字符串对象一旦被配置,它的内容就是固定不可变的。

在java中,使用“=”将一个字符串对象指定给一个引用名称,其意义为改变该名称所引用的对象,原来被引用的字符串对象若没有其他名称来引用它,就会在适当的时候被java的“垃圾回收”机制回收。

在java执行时会维护一个String池(Pool),对于一些可以共享的字符串对象,会现在String池中查找是否存在相同的String内容(字符相同),如果有就直接返回,而不是直接创造一个新的String对象,以减少内存的耗用。如果在程序中使用下面的方式来声明,则实际上是指向同一个字符串对象:

String str1 = "itmyhome";  
String str2 = "itmyhome";  
System.out.println(str1==str2);  


当直接在程序中使用“”来包括一个字符串时,该字符串就会在String池中。

 

StringBuilder类

 

分离字符串

可以使用String的split()进行分离字符串

需注意问题:“.”,“|”,“?”都是转义字符,必须加“\\”

String s1[] = str.split("\\.");  
String s2[] = str.split("\\|");  
String s3[] = str.split("\\?");  
如果在一个字符串中有多个分隔符,可以用“|”作为连字符。


String str = "welcome?to!itmyhome bolg";  
String s[] = str.split("\\?|!");  
for (int i = 0; i < s.length; i++) {  
        System.out.println(s[i]);  
}  

以?和!作为分隔符。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值