zoukankan      html  css  js  c++  java
  • java--string

    【非常详细的介绍了string的用法http://blog.csdn.net/zhangerqing/article/details/8093919

    String &  SringBuffer

    String 适用于字符串常量,一经创建则不能修改,StringBuffer适用于需要做许多操作的字符串。

    【字符串的信息的获取】

    1.length()

    2.startsWith(str); & endsWith(str)

    3.字符串的查找

      查找字符串第一次出现的位置

        indexOf(str);

    public class Demo{
        public static void main(String[] args) {
            String string = "this is a string ,start with this.";
    //        boolean res = string.startsWith("this");
    //        System.out.println(res);
    //        int index = string.indexOf("a");
            System.out.println(index);
        }
    }

      查找最后一次出现的位置

       lastIndexOf(str);

    public class Demo{
        public static void main(String[] args) {
            String string = "this is a string ,start with this.";
    //        boolean res = string.startsWith("this");
    //        System.out.println(res);
            int index = string.lastIndexOf("a");
            System.out.println(index);
        }
    }

    4.字符串的比较
       是否相等 str1.equals(str2)   str1.compareTo(str2)  str1.equalsIgnoreCase(str2)

    5.字符串的连接

       concat()

     【再此强调字符串的不变性】

    通过一段代码说明问题:

    package Test;
    
    public class Demo2{
        public static void main(String[] args) {
            String string = "abc";
            string+="efg";
            System.out.println(string);
        }
    }

    输出结果为:abcefg

    在这个过程中创建了几个对象呢?太简单了,一个!呵呵,错了,两个!

    当String = "abc"的时候,已经创建了一个对象,

    string+="efg";

    系统会抛弃原来的对象,重新开辟一段内存空间,string = “abcefg”;原来的对象空间将会被GC回收。

    在定义一个string对象的时候,会先在string常量池中查找是不是已经存在要创建的对象,如果已经存在了,就直接将常量池中的对象的地址直接赋值给要创建的string引用;如果不存在,才会在重新创建。

    package Test;
    
    public class Demo2{
        public static void main(String[] args) {
    //        String string = "abc";
    //        string+="efg";
    //        System.out.println(string);
            String str1 = "java";
            String str2 = "blog";
            String str3 = str1+str2;
            System.out.println(str3 == "javablog");
        }
    }

    结果:false
    == 判断的是地址是不是相等。

    equals 比较的是对象的内容。

  • 相关阅读:
    人与人之间的本质
    如何让百度搜索不到
    js.prototype最深刻的理解
    调用函数不能用&
    浏览器的缓存就是关闭了浏览器任然存在
    Spring switch的使用
    thymeleaf如何遍历数据 each循环的使用
    spring 机制 扫描包
    Spring分层次建包
    如何使用thymeleaf显示控制传递过来的数据
  • 原文地址:https://www.cnblogs.com/plxx/p/3344493.html
Copyright © 2011-2022 走看看