好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
我的账户
好程序员

专注高端IT职业培训

亲爱的猿猿,欢迎!

已有账号,请

如尚未注册?

  • 客服QQ
  • 官方微信

    好程序员

    专注高端IT职业培训

[JavaEE] 好程序员Java培训分享Java基础之string

[复制链接]
32 0
叶子老师 发表于 昨天 15:15 | 只看该作者 |阅读模式 打印 上一主题 下一主题
好程序员Java培训分享Java基础string先来讲一下字符串
字串符分类
    不可变字符串:----String.字符串本身不能发生改变,与指向字符串的引用无关.
        String s1 = "1000phone";
    可变字符串:----StringBuilder/StringBuffer.字符串本身可以发生变化,与指向可变字符串的引用无关
        StringBuffer sBuffer = new StringBuffer("1000phone");
不可变字符串本身是一个常量,保存在常量区,是存储在了堆区中一块儿特殊的区域里。
**字符串常量的特点:**同一个字符串常量在常量区只允许存储一个。
    String s = "1000phone";//不可变字符串
     * 当执行s的时候,会到常量区找叫1000phone的字符串,如果有直接让s保存他的地址,如果没有,会在常量区开辟一块儿空间存1000phone.
    String s3 = new String("1000phone");
     * 执行s3,由于进行了new,一定会现在堆中开辟一块儿空间,1000phone是作为参数传给了对象.保存在了对象的一个String
**使用equals进行String的比较**
**2.转换:**
将字符数组转换成字符串
    char[] arr = {'p','h','o','n','e'};
     String string1 = new String(arr);  //string1 = phone
将字符串转换成字符数组
    char[] arr1 = string.toCharArray();
System.out.println(arr1);
将字节数组转成字符串
        //String(byte[] bytes)
        //String(byte[] bytes, int offset, int length)
        //String(byte[] bytes, String charsetName)//使用指定的编码将字节数组转换成字符成
        byte[] bytes = {97,98,99,100};
        String string3 = new String(bytes);
        System.out.println(string3); //abcd
将字符串转成字节数组
        //byte[] getBytes()
        byte[] bytes1 = string3.getBytes();
将基本数据类型转换成字符串
        //String.valueOf()
        String string4 = String.valueOf(true);
        System.out.println(string4);//true
子串:
    //包含起始位置,不包含结束位置,到结束位置的前一位
    String substring(int beginIndex, int endIndex);
大小写转换
        String toLowerCase();  // 转成小写
        String toUpperCase();  // 转成大写
按字典顺序比较两个字符串
    * 字典顺序:按照ASCII表比较当前的两个字符,ASCII码大的认为是大的字符
    * 规则:从左边第一个字符开始比较
    * 如果当前的字符不相同,直接认为ASCII大的字符串是大字符串,后面的字符停止比较
    * 当前字符比较的具体规则:使用前面的字符-后面的字符,返回差值.如果是负数,说明前面的字符串小于后面的.反之前面的大.
    * 如果当前的字符相同,再去比较第二个字符,依次往后推,如果比到最后都相同,则认为两个字符串相等,差值返回0.
        "1000PHone".compareTo("1000PHone");//0
        "1000AHone".compareTo("1000BHone");//-1
        "100000".compareTo("100");//-3
**可变字符串:**
* 字符串缓冲区.StringBuffer/StringBuilder
* 区别:
* StringBuffer:出现在jdk1.0,是线程安全的,考虑了线程安全问题
* StringBuilder:出现在jdk1.5,是线程不安全的,没有考虑线程安全问题
*
* 注意:在不考虑线程安全问题时,尽量使用StringBuilder,因为速度快,效率高
使用:
    StringBuffer sBuffer = new StringBuffer();
    //1.存储:
    //StringBuffer append(boolean b)   从最后插入
    sBuffer.append("abcd"); //abcd
    //StringBuffer insert(int offset, boolean b)   从指定位置插入
    sBuffer.insert(4, 123);
    System.out.println(sBuffer);//abcd123
   
    //2.删除:
    //StringBuffer delete(int start, int end)   删除一部分字符串
    //StringBuffer deleteCharAt(int index)  删除一个字符
    System.out.println(sBuffer.deleteCharAt(4));//abcd23
    System.out.println(sBuffer.delete(2,4)); //ab23
    //3.修改:
    //StringBuffer replace(int start, int end, String str)  替换指定的子字符串
    //void setCharAt(int index, char ch) 修改一个字符
    sBuffer.replace(1, 3, "ab") ; //aab3
    //4.获取:
    //char charAt(int index)
    System.out.println(sBuffer.charAt(0)); //a
    //返回指定子字符串的下标  从左到右
    //int indexOf(String str)
    System.out.println(sBuffer.indexOf("ab"));//1
    //返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
  System.out.println(sBuffer.indexOf("ab",0)); //1
    System.out.println(sBuffer.indexOf("ab",2)); //-1
    //int lastIndexOf(String str)
    //返回指定子字符串(从右边开始计数)在此字符串第一次出现时的索引
    System.out.println(sBuffer.indexOf("ba")); //-1
    System.out.println(sBuffer.indexOf("ab")); //1
    //int lastIndexOf(String str, int fromIndex)
    /返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
    System.out.println(sBuffer.indexOf("ab",1)); //1
    //5.反转:
    //StringBuffer reverse()
    System.out.println(sBuffer.reverse()); //3baa
## 2.网址: ##
* 网址的功能:实现客户端与服务器端的通信
* 协议:是制定一个统一的规范
* http协议:超文本传输协议,实现的是网络间的通信的一个通信规则
* https协议:安全的http协议---可以省略,默认是http协议
* 域名/IP:标记网络上的唯一一台主机     可以简化写:baidu
* 端口号:标记同一台主机上的某一个服务器   [0,65536]---可以省,默认80
* 资源路径:   可以省
* 查询条件:   可以省
      * 例子:
      * 1.判断是不是网址---http/https
      * 2.取出端口
      * 3.取出查询条件
      *
* 验证qq号与密码是否正确?
     * a:本地验证---验证的是qq与密码的格式
         * --qq:
             * 1.首字母不能为0  
             * 2.全部是数字  
             * 3.[5,11]
         * 要求:使用两种方式验证:
             * 1.普通的字符串验证     
             * 2.利用自定义的异常
     * b:网络验证---验证的是qq与密码与服务器存储的是否相同.
         * --写一个虚拟的qq,密码即可
## 3.Date:日期类 ##
* Data:数据类,装的是二进制的数据
*
* java.util   对应的是java的日期类型,包括年月日  时分秒
* java.sql    对应的是数据库的日期类型 ,只包括 年月日
*
     * long型的时间,这个时间从1970年开始算
     * long time = date.getTime();
**日期转换**
* Format:格式转换器
* DateFormat:日期格式转换器
* //使用自定义的日期格式转换器实现自由转换----SimpleDateFormat
    * SimpleDateFormat simpleDateFormat = new  SimpleDateFormat("yyyy/MM/dd  HH:mm:ss");//HH代表24小时制
好程序员Java培训官网:http://wzpajs.com/javaEE_class.shtml

精彩内容,一键分享给更多人!
收藏
收藏0
转播
转播
分享
淘帖0
支持
支持0
反对
反对0
回复

使用道具 举报

您需要登录后才可以回帖

本版积分规则

关注我们
千锋好程序员

北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

Copyright 2007-2019 北京千锋互联科技有限公司 .All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启