java字符串处理

一:String类用于不变的字符串;StringBuilding用于可变的字符串;StringBuffer现主要用于并发计算的环境,有同步的功能,但比StringBuilder速度慢。JAVA用类(String)来封装字符串,编程人员不用担心越界问题。

Java用String类存放字符串常量,不能修改,可以作为参数传递,也可以被多个并发执行的线程所共享。

如果字符串要变动,则采用StringBuilder类来操作。该类相当于有个字符缓冲区,用所提供的方法修改串中的字符。若修改后不会再变,可用toString方法转化为String类,因为String类较简单,容易操作。

二:String类

(1)创建String类对象可用串字面量   String s ="Good moring";   与String s=new String("Good moring");等价。

可以用数组作参数,但注意不要改变数组内容,例如:String s=new String(char value[ ]);

(2)String类有许多方法,可以访问字符串,常用的有如下方法:

public int length()  用于返回串中的字符数,例如:int len=s.length();

public char charAt(int index)该方法用于返回参数中指定的串中位置的字符,例如: char ch=s.charAt(2);

public int indexOf(String str)该方法用于返回串中首次出现的str串的位置,返回-1表示串中无此str串。例如:int                        ind=s.indexOf('.');

public String substring(int beginlndex,int endlndex)该方法返回起始位置和末尾位置间的字符串。例如:

             String sub=s.substring(0,4);


三StringBuilder类

(1)StringBuilder类对象是可以修改的字符串,它除了有长度方法length()外,还有容量方法capacity().创建 StringBuilder类对象格式如下:

 StringBuilder strb=new StringBuilder();  //建立空的StringBuilder对象,缓冲 区初始容量是16字符单元。

可以带整形参数,即指定缓冲区大小,例如:StringBuilder strb=new StringBuilder(int initCapacity);以后加入字符时缓冲区会自动扩展。

还可以用字符串做参数,例如: StringBuilder sb=new StringBuilder("Good moring");

(2)StringBuilder 类有许多方法,用于修改字符串,常用有如下几个方法:

StringBuilder append(type variable)该方法追加数据到StringBuilder 的尾端,数据类型可以是object、int、long、float、double、boolean、char[],它们都被转换为字符串。该方法如下:

    while((ch=System.in.read())!='\n')

        strb.append(ch);   //strb 是StringBuilder 类的对象。


StringBuilder insert(int offset type variable)该方法把数据插入到StringBuilder 的指定位置上,数据类型同上。例如:  StringBuilder  strb=new StringBuilder("A book");

              strb.insert(2,"good"); //结果为A good book

注意位置从0开始,若要插入字符到串的前端,则位置参数为0.


StringBuilder setCharAt(int offset,char ch)该方法将指定位置的字符改为指定字符。用法示例:

         strb.setCharAt(2,‘B’);//将strb中第三个字符改为B。

综合实例:将source字符串中所有字符反向放入dest字符缓冲区,最后把dest转化为字符串返回。

class ReverseStr {
     public static String reversetIt(String source) {
    int i,len=source.length();
    StringBuilder dest = new StringBuilder(len);
    for(i=(len-1);i>=0;i--){
    dest.append(source.charAt(i));
     
    }
return dest.toString();
}
}


class Myrever{
public static void main(String[] args) {
System.out.println("abcdefgh is reversed to:"+ReverseStr.reversetIt("abcdefgh"));

}

}

运行结果:abcdefgh is reversed to:hgfedcba

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值