JAVA温习课堂9

对象流ObjectInoutStream ObjectOutputStream(对象 必须实现 Serializable 接口)
    对象序列化的目标是将对象保存到磁盘上,或允许在网络中直接传输对象
    为了让某类能够进行序列化,必须实现 Serializable 接口
    如果类的某个字段不是基本数据类型或String 类型,而是另一种引用类型,那么这个引用类型必须是可序列化的,否则拥有该类型的Field 的类也不能序列化

RandomAccessFile 类 既可以读取文件内容,也可以向文件写入内容
    可对文件的内容进行随机读写
示例代码:

        RandomAccessFile random = new RandomAccessFile(new File("engineer.txt"),"rw");
        String line = random.readLine();
        // 读取一行的同时,指针指向该行的最后一个字符位置
        byte [] buffer = new byte[(int) (random.length()-line.length()) - 1 ];
        random.read(buffer);
        // 读取剩下的字符并将其存入数组,此时指针已经指向文件内容中的最后一个位置

        random.seek(line.length());

        // 复位至第一行的最后位置

        random.writeBytes("\nhello,EngiadfsadfneerZhong!!!!\n");

        // 向文件中写入内容

        random.write(buffer);

        // 再写入存入数组的内容

        random.close();

        //关闭流

48、JAVA常用类
①、String 类(不可变的字符序列)
        String strtemp = "EngineerZhong";
        String str = new String("Hello");
            replace() 新字符替换字符串中的旧字符,生成一个新字符串
        字符串缓冲池:直接通过 = 为字符串赋值,会先在缓冲池中查找有没有一样的字符串,如果存在,就把那个引用赋给字符串变量。
            如果不存在,创建新的字符串,并把对应的字符串放入到缓冲池中
        字符串的几个常用方法
             trim( )   去除字符串前后空格的方法;
             subString(fromIndex , endIndex ) [fromIndex,toIndex)半闭半开   求子字符串的方法(包含fromIndex开始,String 的字索引 从 0 开始)
              indexOf( ) 、lastIndexOf( )  求指定字符的索引,经常搭配使用
              split( )  将字符串拆分成字符串数组
              equals( ) 比较字符串内容是否相等的方法,不能直接使用 ==
示例代码:
            public static void main(String[] args) {
                String str = "EngineerZhong";
                String strTemp = str.replace('e', 'b');
                //将替换好的字符重新赋值给新的字符串,原来的字符串不被改变
                System.out.println(str);

                System.out.println(strTemp);

                // 对象引用地址
                Person person = new Person("EngineerZhong", 21);
                System.out.println(person);

                changeName(person);
                System.out.println(person);

                // 不可变的字符序列 , 对象引用地址将指向原指向的字符串对象
                String str2 = "EngineerZhong";
                changeStrName(str2);
                System.out.println(str2);
                stringTrim();
                stringSubString();      
                stringIndexOf();        
                stringSplit();
            }

            public static void changeName(Person person){
                person.setName("EngineerYe");
            }

            public static void changeStrName(String strTemp){
                // replace 产生新的字符串 赋值给新的 字符串
                String result = strTemp.replace('E', 'e');  
                System.out.println(result);
                System.out.println(strTemp);
            }
            public static void stringTrim(){
                String str = "     E ngineerZ  hong   ";
                System.out.println(str.trim());
            }

            public static void stringSubString(){
                String str = "EngineerZhong";
                System.out.println(str.substring(0,8));
            }

            public static void stringIndexOf(){

                String str = "http://www.baidu.com/";
                System.out.println(str.indexOf("//"));
                System.out.println(str.lastIndexOf("/"));

                int beginIndex = str.indexOf("//") + 2;
                int endIndex = str.lastIndexOf("/");

                System.out.println(str.substring(beginIndex, endIndex));
            }

            public static void stringSplit(){       
                String str = "Engineer/Zhong/Ye/Zhou";
                String[] strArray = str.split("/");

                for(String strTemp : strArray){
                    System.out.println(strTemp);
                }
            }
程序输出:
        EngineerZhong
        EnginbbrZhong
        Person [name=EngineerZhong, age=21]
        Person [name=EngineerYe, age=21]
        engineerZhong
        EngineerZhong
        EngineerZhong
        E ngineerZ  hong
        Engineer
        5
        20
        www.baidu.com
        Engineer
        Zhong
        Ye
        Zhou

实验需求:
    将字符串的每个字符 加 1
    特殊位置 z 和 Z 默认反复至a 和 A
    非字母保持原来的字符
    最后输出更改后的字符串
    public static void main(String[] args) {

        String str = "abcdefzgh#@^ABEEWZ--345s";
        System.out.println(str);
        for(int i = 0 ; i < str.length() ; i++){
            char signCharTemp = str.charAt(i);

            if(signCharTemp >= 'a' && signCharTemp <= 'z'){
                if(signCharTemp == 'z')
                    signCharTemp = 'a';
                else
                    signCharTemp = (char) (signCharTemp + 1);
            }else if(signCharTemp >= 'A' && signCharTemp <= 'Z'){
                if(signCharTemp == 'Z')
                    signCharTemp = 'A';
                else
                    signCharTemp = (char) (signCharTemp + 1);
            }
            System.out.print(signCharTemp);
        }

    }
输出效果:
    abcdefzgh#@^ABEEWZ--345s
    bcdefgahi#@^BCFFXA--345t
更新时间:2016年9月25日
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值