• java38


    字符串分类:
    不可变字符串:字符串的值改变时,地址改变
    可变字符串:字符串的值改变时,地址不变
    可变字符串又分为:String Builder和String Buffer
    String ,String Builder和String Buffer都实现了charSequence接口

    创建字符串的两种方式

    	String str = "hah";
    	String str2 = new String("hh");
    

    字符串对象值为空

            //未分配内存空间
    	String s1 = null;
    	String s2 ;
    	//分配了内存空间
    	String s3 = "";
    

    字符串的比较

    	String a1 = "ABC";
    	String a2 = new String("ABC");
    	System.out.println(a1 == a2);
    【false】
    	System.out.println(a1.equals(a2));
    【true】
    

    分析:
    System.out.println(a1.equals(a2));
    在equals方法中会先判断其地址是否相同

    若不相同,
    判断所传数据是否是String类
    是,接着判断两个数据的每一个字符是否相同

    字符串内存分析
    String str = new String("ABCD");
    会先在堆中创建一个对象(开辟一个空间),然后去常量池(方法区)中寻找是否有该变量,如果有,直接引用常量池中的内容
    如果没有,将在常量池中开辟空间,至少创建一个对象
    String str2 = "ABCD";
    创建一个或不创建对象(如果常量池中已经有了该变量,则不需要再创建对象)

    	//属于lang包,不需要导包
    	//判断两个字符串是否相等
    	String a="AB";
    	String a2 = new String("ab");
    	System.out.println(a == a2);false
    	System.out.println(a.equals(a2));false
    	System.out.println(a.equalsIgnoreCase(a2));true(忽略大小写的比较)
    	//大小写转换
    	String b="ab";
    	System.out.println(b.toUpperCase());AB
    	String b2="AB";
    	System.out.println(b2.toLowerCase());ab
    	//返回在字符串中第一个/最后一个出现值的位置;
    	String c="abcdefde";
    	String c2="bc";
    	String c3="de";
    	System.out.println(c.indexOf(c2));1
    	System.out.println(c.indexOf(c3));3
    	System.out.println(c.lastIndexOf(c3));6
    	//把char类型的数组转换成字符串类型
    	char[ ] d = {'a','b','c'};
    	String d2 = new String(d);
    	System.out.println(d2);"abc"
    	//把字符串类型转换成char类型的数组
    	char[ ] d3 = d2.toCharArray();
    	System.out.println(d3);'a''b''c'
    	//输出字符串中某个位置的数据
    	String a6 = "123456";
    	System.out.println(a6.charAt(4));
    
  • 相关阅读:
    AtCoder Regular Contest 077
    FWT模板
    hackerrank Alex对战Fedor
    hackerrank 训练军队
    hackerrank Diameter Minimization
    hackerrank Ticket
    java基础 布局管理器
    java基础 super 子类调用父类
    java基础 字符串 “==” 和 “equals” 比较
    java基础 作业(一)
  • 原文地址:https://www.cnblogs.com/-zero/p/10588660.html
Copyright © 2020-2023  润新知