黑马程序员_字符串

 

 ------- android培训java培训、java基础学习技术总结、期待与您交流! ----------

    

  与字符串相关的类,有String、StringBUffer、StringBuilder。

     String类。

        1.创建String类型对象   String str=new String("abcdefghdef");

       2.下面是String类中常见的一些方法

    public class Test {  
              public static void main(String []args){  
                  String str=new String("abcdefghdef");//定义一个字符串并对其进行初始化  
                  //1.获取  
                  int len=str.length();     //获取字符串str的长度  
                  char ch=str.charAt(3);    // 获取字符串str中位置为3的字符  
                  int i1=str.indexOf('d');  //获取第一次出现字符d的位置  
                  int i2=str.indexOf("def");    //获取字符串str中第一次出现字符串def的位置  
                  int i3=str.indexOf('d', 4);    //获取字符串str中从位置4开始第一次查找到d的位置  
                  int i4=str.indexOf("def", 4);   //获取字符串str中从位置4开始第一次查找到def的位置  
          
                  //2.判断  
                  boolean b1=str.contains("def");    // 判断字符串中是否包含字符串def  
                  boolean b2=str.isEmpty();          //判断字符串是否为空  
                  boolean b3=str.startsWith("abc");   //判断是否以指定字符串开头                               //  
                  boolean b4=str.endsWith("def");       //判断是否以指定字符串结尾  
                  boolean b5=str.equals("abcdef");      //判断字符串与字符串是否相同  
                  //3.转换  
                  char[] chs=new char[]{'a','b','c','d','e'};  
                  String str1=new String(chs);           
                  str1=new String(chs,0,chs.length);   //将指定的字符数组的一部分转换成字符串  
                  char[] chs1=str1.toCharArray();      //将字符串转换成字符数组  
                  byte[] by=str1.getBytes();             //将字符串转化成字节数组  
                  //4.替换  
                  String str2=str.replace('d', 'a');    //将字符串中字符d全部替换成a  
                  //5.切割String[] split(regex);  
                  //6.截取  
                  String str3=str.substring(2,4);        //将字符串str中从2到4的字符截取并付给str3  
                  //7.转换  
                  str.toLowerCase();        //字符串中字符大写转换为小写  
                  str.toUpperCase();        //字符串中字符小写转换为大写  
                  str.trim();               //去除字符串两端的空格  
                  str.compareTo(str1);       //对两个字符串按顺序进行自然比较  
               }  
    }  

 
           3.在程序中只要是用双引号括起来的的都是String类型的对象,String类是final类,String类对象一旦被创建,对象值是不可变的。对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.

 

      

   StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
   它只能通过构造函数来建立,
    StringBuffer sb = new StringBuffer();
    note:不能通过付值符号对他进行付值.
    sb = "welcome to here!";//error
   对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
   中付值的时候可以通过它的append方法.
   sb.append("hello");

   字符串连接操作中StringBuffer的效率要比String高:

  String str = new String("welcome to ");
  str += "here";
  的处理步骤实际上是通过建立一个StringBuffer,然后调用append(),最后
  再将StringBuffer toString();
  这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.

   并且由于String 对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值.
  这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.
 StringBuffer 和StringBuilder的区别:
    java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。
    StringBuilder。与该类相比,通常应该优先使用 java.lang.StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值