黑马程序员技术交流社区

标题: 今天开始复习了 谁有需要拿走吧 stringbuffer 和自动封装 [打印本页]

作者: 我能驾驭住    时间: 2012-6-10 18:53
标题: 今天开始复习了 谁有需要拿走吧 stringbuffer 和自动封装
本帖最后由 我能驾驭住 于 2012-6-10 18:56 编辑

package String.lianxi;
import java.lang.*;
public class StringbufferDemo {
/**
  * stringbuffer:字符缓冲区(是一个容器)//线程同步
  * stringbulider jdk1.5新特性,线程不同步,效率快,以后开发建议使用stringbulider;
  * 升级三个因素:提高效率,简化书写,提高安全性!
  * 特点:
  * 1,而且长度是可变化的;
  * 2,可以操作多个数组类型;
  * 3,最终结果会通过tostring()方法变成字符串
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  //method_add();//添加
  //method_delete();//删除
  //method_update();//修改
  //method_huoqu();//获取
  //method_reverse();//反转
}
private static void method_huoqu() {
  // TODO Auto-generated method stub
  StringBuffer sb=new StringBuffer("abcd");
  System.out.println(sb.length());//长度
  System.out.println(sb.charAt(3));//获取指定位置字符
  System.out.println(sb.indexOf("c"));//获取字符在字符串位置
  System.out.println(sb.substring(1, 3));//截取
  
}
private static void method_reverse() {
  // TODO Auto-generated method stub
  //StringBuffer sb=new StringBuffer("abcdef");
  //sb.reverse();
  //System.out.println(sb);
  
  //将指定缓冲区的内容存储到指定的字符数组中 用getchars();
  StringBuffer sb1=new StringBuffer("abcdefg");
  char[] chs=new char[4];//建立一个字符数组,长度为4
  sb1.getChars(1,4,chs,1);
  for(int i=0;i<chs.length;i++){
   System.out.println("第"+i+"字符是:"+chs);
  }
  
  
  
  
}
/*private static void method_update() {
  // TODO Auto-generated method stub
  StringBuffer sb=new StringBuffer("abcde");
  sb.replace(1, 4, "kkkkk");//从下标是1,2,3,开始修改替换成kkkkk
  sb.setCharAt(3, 'q');//一个字符替换把下标3替换成q
  System.out.println(sb);
  
  
}*/
/*private static void method_delete() {
  // TODO Auto-generated method stub
  StringBuffer sb=new StringBuffer("abcde");
  sb.delete(2, 5);//包含头,不包含尾,所以只删除2 3 4 下标的字母
  sb.deleteCharAt(2);//删除一个字符用这个方法
  
  sb=new StringBuffer();//清空缓冲区,删除全部
  sb.delete(0, sb.length());//也是清空缓冲区,删除全部
  
  System.out.println(sb);
  
}*/
/* private static void method_add() {
  StringBuffer sb = new StringBuffer();
  sb.append("abcd");// 下面这两条语句是一样的,只是把值又赋给一个变量,类型是stringbuffer
  StringBuffer sb1 = sb.append("abc");// 想到面盆理论,谁添加都是这个盆,这个字符缓冲区,所以相等sb==sb1
  System.out.println(sb1 == sb);// 结果为true
   append:就是向未尾添加.....
  sb.append("abc").append(34).append(true);// 可以这样写,向里面添加很多,不能添加byte
  System.out.println(sb.toString());//转换成字符串!
  System.out.println(sb1);
  insert:从指定位置添加....
  sb.insert(2, "qq");//从指定位置添加,在下标是2的位置添加!
  System.out.println(sb);
}*/
}




package String.lianxi;
public class IntegerClass {
/**
  * 基本数据类型封装类:
  * 8种基本数据类型转换
  * int----Integer
  * char----Charactor
  * byte-----Byte
  * short----Short
  * long----Long
  * double---Double
  * boolean----Boolean
  * float----Float
  * 基本数据类型包装类最常见的就是用于基本数据类型与字符串之间的转换
  *
  * (1)基本数据类型转字符串:
  *    基本数据类型+“”  例如:23+" ";
  *    基本数据类型封装类.toString() 例如:Integer.toStirng(34); Long.toStirng(245);Float.toString(23.5);
  
    (2)字符串转换成基本数据类型(例如文本框内中输入的东西都是字符类型)
             格式:基本数据类型  变量 = 基本数据类型封装类.parse基本数据类型("数据");
             例如:int x = Integer.parseint("34");
           long x=Long.parselong("234");
           double x=Double.parsedouble("23.4");
          ....
  */

public static void main(String[] args) {
  // TODO Auto-generated method stub
       //基本数据类型转字符串:
  int x=34;//这是基本数据类型34
        System.out.println(Integer.toString(x));//这是字符串类型34
         
        
        //字符串转换成基本数据类型
        
        int num=Integer.parseInt("123");//这里面只能放字符串,而且是整型的不然会出错 “12a2”这样就错了
        System.out.println(num+3);//结果126
        
      //包装类有什么用呢?我们可以用它们的一些方法,例如静态方法
        System.out.println(Integer.toBinaryString(6));//把6的二进制输出
        System.out.println(Integer.toHexString(12));//转换成16进制
        System.out.println(Integer.toOctalString(20));//转换成8进制
        
        int i = Integer.parseInt("110", 2);//前面的是转换的内容,后面的是转换的进制
        int j = Integer.parseInt("110", 8);
        int k = Integer.parseInt("110", 16);
        System.out.println("二进制: "+i+"八进制:  "+j+"十六进制:  "+k);
        
        //包装类 的非静态方法:
          Integer p=new Integer("123");
          System.out.println(p.intValue());
         
          //jdk1.5新特性:自动封装和拆箱
          //一般方法
          Integer x1=new Integer("123");
          Integer x2=new Integer(123);
          System.out.println(x1==x2);//结果为假,两个对象
          System.out.println(x1.equals(x2));//结果为真,比较对象的里面的地址值
          //新特性
         
          Integer x3=123;//自动封装,Integer x3=new Integer("123");这两条语句是一样的
          Integer x4=123;
          System.out.println(x3==x4);/*为true 新特性规定,当值在byte(-128~127)范围内结果就为真,
          因为对于新特性来说,在byte范围内,x4=123的时候,123存在的时候,不会再开辟新空间了,直接指引x3,*/
          System.out.println(x3.equals(x4));//为true,还是比较地址值;
         
          Integer x5=128;
          Integer x6=128;
          System.out.println(x5==x6);//为假,因为超过了byte范围
          System.out.println(x5.equals(x6));
         
         
         
          Integer x7=6;
          x7=x7+3;/*这本来是一个对象 和一个基本类型相加,本不合法,
          但新特性规定,自动拆装,先把x7这个对象自动转换成基本数据类型,再与3相加*/
          System.out.println(x7);
         
         
        
}
}


作者: 赵兵锋    时间: 2012-6-10 19:18
嗯,幸苦了,学习了
作者: 江南    时间: 2012-6-10 19:22
幸苦了,学习了 学习
作者: 我能驾驭住    时间: 2012-6-10 19:25
江南 发表于 2012-6-10 19:22
幸苦了,学习了 学习

:):P........
作者: 吴小东    时间: 2012-6-11 11:39
楼主威武,不过提一个美中不足,你的封装方法操作的字符串作为参数传递比较好,还有一个 huoqu()  ==   get()  前面都是英文名 突然来个中文一下没看明白 哈哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2