• String


    package cn.learn.basic;
    /*
        程序当中所有双引号字符串,都是String类的对象,就算没有new,仍然是
    
        字符串特点:
        1.字符串内容不可改变,且字符串可共享使用
        2.底层原理是byte[]字节数组,字节是数据存储的最小单位
    
        字符串常量池
        1.在String创建的字符串,直接双引号生成的字符串存在字符串常量池(heap)中,此时若串比较即为true
        2.在双引号生成字符串中,堆中开辟有一块字符串常量池,池中有字符串对象
         其地址指向池外堆中的byte[]数组的首地址
         栈中的对象则指向字符串常量池中的字符串对象地址
        注意:
        1.基本类型 == 是比较数值
        2.引用类型 == 是比较地址
    
     */
    public class StringApi {
        public static void main(String[] args) {
            //有参创建字符串
            String str=new String("我是new出来的String");
            System.out.println(str+"
    =====================");
    
            //根据字符数组创建字符串
            char[] str_c={'a','b','c'};
            //new时在堆中创建字符串对象,将char[]数组转换为byte[]数组(ASCII码值),字符串对象再指向byte[]
            String str_cs=new String(str_c);
            System.out.println(str_cs+"
    =====================");
    
            //根据字节数组创建字符串
            byte[] str_b={97,98,99,100,102};
            String str_bs=new String(str_b);
            System.out.println(str_bs+"
    =====================");
    
            //直接创建
            String str2="abc";
            System.out.println(str2+"
    =====================");
    
            String str1="abc";
            System.out.println(str1+"
    =====================");
            System.out.println(str1==str2);
    
            /*
            字符串内容值比较
            public boolean equals(Object obj) -只有参数是字符串并且内容相同才会给true
            public boolean equalsIgnoreCase(String str) -忽略大小写进行比较
    
            注意事项:
            1.任何对象都能用Object接收
            2.equals具有对称性,a.equals(b)与b.equals(a)效果一致
            3.一般常量在前,变量在括号,避免空指针异常(str=null;  str.equals("abc");Nullpointerexception)
             */
            boolean isEquals=str1.equals(str_cs);
            System.out.println(isEquals);
            System.out.println(str1.equals("abc"));
            System.out.println("abc".equals(str1));  //可见双引号字符串本身就是个对象
    
            /*
            String中的获取相关常用方法
            public int length(); -获取字符串长度
            public String concat(String str) -将源字符串末尾添加上str字符串,是生成的一个新的字符串,与+相似
            public char charAt(int index) -得到索引值index里的单个字符
            public int indexOf(String str) -查找串str中在主串中首次出现的索引位置,如查找失败返回-1
    
            String中截取的相关常用方法
            重载方法截取:
            public String substring(int index) -截取从index到字符串末尾的字符串,生成新的字符串
            public String substring(int begin,int end) -截取[begin,end)的字符串,不影响源字符串
    
            String中分割的方法
            public String[] split(String regex) -按照参数进行切割,regex参考标准
            注:**split其实是一个正则表达式,如果按照英文点切分,必须写\.
    
             */
            String str3="nihhaoyayaya";
    
            //获取索引位置
            int index=str3.indexOf("ha");
            System.out.println("ha在nihhaoyayaya中哪个索引位置开始匹配成功:"+index); //3
            //截取
            String sub_string=str3.substring(5,9);
            System.out.println(sub_string); //oyay
            //分割
            String[] str3_split=str3.split("a");
            System.out.println(str3_split[1]); //oy
    
            /*
            String中与转换相关的常用方法
            public char[] toCharArray();  -将字符串转化为字符数组
            public byte[] getByte(); -获得当前字符串底层的字节数组
            public String replace(CharSequence oldString,charSequence newString);
            -将老字符串替换为新的字符串并返回替换之后的结果字符串
             */
            //转化成字符数组
            char[] chars = "hello".toCharArray();
            System.out.println(chars[2]);
            //转化成字节数组
            byte[] bytes = "aorld".getBytes();
            System.out.println(bytes[0]);
            //替换字符
            String str3_replace=str3.replace("o","m");
            System.out.println(str3);
            System.out.println(str3_replace);
        }
    
    
    }
  • 相关阅读:
    [转帖]gesture recognition
    [转帖]了解AmbiLight知识
    [转帖]AVS音视频编解码技术了解
    [笔记]新概念英语听力
    ES 学习记录
    Spring Aop 错误之:No MethodInvocation found ... the ExposeInvocationInterceptor is upfront in the interceptor chain. Specifically, note that advices with order HIGHEST
    AOP无法切入同类调用方法解决办法
    多数据源 Spring 1.x 和 spring 2.x区别
    Intellij IDEA 在一个窗口添加多个项目并全部加入version control
    PageHelper 分页和排序之间的关系
  • 原文地址:https://www.cnblogs.com/huxiaobai/p/11443046.html
Copyright © 2020-2023  润新知