zoukankan      html  css  js  c++  java
  • 动手动脑

    一、String.equals()方法

        "=="操作符的作用

        1、用于基本数据类型的比较

        2、判断引用是否指向堆内存的同一块地址

       equals的作用:

        用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型。

      String类型比较不同对象内容是否相同,应该用equals,因为==用于比较引用类型和比较基本数据类型时具有不同的功能。

        分析如下:

      String作为一个对象来使用

      例子一:对象不同,内容相同,"=="返回false,equals返回true

    String s1 = new String("java");
    String s2 = new String("java");
    
    System.out.println(s1==s2);            //false
    System.out.println(s1.equals(s2));    //true

      例子二:同一对象,"=="和equals结果相同

    String s1 = new String("java");
    String s2 = s1;
    
    System.out.println(s1==s2);            //true
    System.out.println(s1.equals(s2));    //true

      String作为一个基本类型来使用

      如果值不相同,对象就不相同,所以"==" 和equals结果一样

    String s1 = "java";
    String s2 = "java";
    
    System.out.println(s1==s2);            //true
    System.out.println(s1.equals(s2));    //true

      如果String缓冲池内不存在与其指定值相同的String对象,那么此时虚拟机将为此创建新的String对象,并存放在String缓冲池内。

      如果String缓冲池内存在与其指定值相同的String对象,那么此时虚拟机将不为此创建新的String对象,而直接返回已存在的String对象的引用。

    二、String类常用方法

      1、求字符串长度
        public int length()//返回该字符串的长度

    1 String str = new String("asdfzxc");
    2 int strlength = str.length();//strlength = 7


      2、求字符串某一位置字符
        public char charAt(int index)//返回字符串中指定位置的字符;注意字符串中第一个字符索引是0,最后一个是length()-1。

    1 String str = new String("asdfzxc");
    2 char ch = str.charAt(4);//ch = z


      3、提取子串
        用String类的substring方法可以提取字符串中的子串,该方法有两种常用参数:
          1)public String substring(int beginIndex)//该方法从beginIndex位置起,从当前字符串中取出剩余的字符作为一个新的字符串返回。
          2)public String substring(int beginIndex, int endIndex)//该方法从beginIndex位置起,从当前字符串中取出到endIndex-1位置的字符作为一个新的字符串返回。

    1 String str1 = new String("asdfzxc");
    2 String str2 = str1.substring(2);//str2 = "dfzxc"
    3 String str3 = str1.substring(2,5);//str3 = "dfz"


      4、字符串比较
        1)public int compareTo(String anotherString)//该方法是对字符串内容按字典顺序进行大小比较,通过返回的整数值指明当前字符串与参数字符串的大小关系。若当前对象比参数大则返回正整数,反之返回负整数,相等返回0。
        2)public int compareToIgnore(String anotherString)//与compareTo方法相似,但忽略大小写。
        3)public boolean equals(Object anotherObject)//比较当前字符串和参数字符串,在两个字符串相等的时候返回true,否则返回false。
        4)public boolean equalsIgnoreCase(String anotherString)//与equals方法相似,但忽略大小写。

    复制代码
    1 String str1 = new String("abc");
    2 String str2 = new String("ABC");
    3 int a = str1.compareTo(str2);//a>0
    4 int b = str1.compareTo(str2);//b=0
    5 boolean c = str1.equals(str2);//c=false
    6 boolean d = str1.equalsIgnoreCase(str2);//d=true
    复制代码


      5、字符串连接
        public String concat(String str)//将参数中的字符串str连接到当前字符串的后面,效果等价于"+"。

    1 String str = "aa".concat("bb").concat("cc");
    2 相当于String str = "aa"+"bb"+"cc";


      6、字符串中单个字符查找
        1)public int indexOf(int ch/String str)//用于查找当前字符串中字符或子串,返回字符或子串在当前字符串中从左边起首次出现的位置,若没有出现则返回-1。
        2)public int indexOf(int ch/String str, int fromIndex)//改方法与第一种类似,区别在于该方法从fromIndex位置向后查找。
        3)public int lastIndexOf(int ch/String str)//该方法与第一种类似,区别在于该方法从字符串的末尾位置向前查找。
        4)public int lastIndexOf(int ch/String str, int fromIndex)//该方法与第二种方法类似,区别于该方法从fromIndex位置向前查找。

    复制代码
    1 String str = "I am a good student";
    2 int a = str.indexOf('a');//a = 2
    3 int b = str.indexOf("good");//b = 7
    4 int c = str.indexOf("w",2);//c = -1
    5 int d = str.lastIndexOf("a");//d = 5
    6 int e = str.lastIndexOf("a",3);//e = 2
    复制代码


      7、字符串中字符的大小写转换
        1)public String toLowerCase()//返回将当前字符串中所有字符转换成小写后的新串
        2)public String toUpperCase()//返回将当前字符串中所有字符转换成大写后的新串

    1 String str = new String("asDF");
    2 String str1 = str.toLowerCase();//str1 = "asdf"
    3 String str2 = str.toUpperCase();//str2 = "ASDF"


      8、字符串中字符的替换
        1)public String replace(char oldChar, char newChar)//用字符newChar替换当前字符串中所有的oldChar字符,并返回一个新的字符串。
        2)public String replaceFirst(String regex, String replacement)//该方法用字符replacement的内容替换当前字符串中遇到的第一个和字符串regex相匹配的子串,应将新的字符串返回。
        3)public String replaceAll(String regex, String replacement)//该方法用字符replacement的内容替换当前字符串中遇到的所有和字符串regex相匹配的子串,应将新的字符串返回。

    1 String str = "asdzxcasd";
    2 String str1 = str.replace('a','g');//str1 = "gsdzxcgsd"
    3 String str2 = str.replace("asd","fgh");//str2 = "fghzxcfgh"
    4 String str3 = str.replaceFirst("asd","fgh");//str3 = "fghzxcasd"
    5 String str4 = str.replaceAll("asd","fgh");//str4 = "fghzxcfgh"


      9、其他类方法
        1)String trim()//截去字符串两端的空格,但对于中间的空格不处理。

    1 String str = " a sd ";
    2 String str1 = str.trim();
    3 int a = str.length();//a = 6
    4 int b = str1.length();//b = 4


        2)boolean statWith(String prefix)boolean endWith(String suffix)//用来比较当前字符串的起始字符或子字符串prefix和终止字符或子字符串suffix是否和当前字符串相同,重载方法中同时还可以指定比较的开始位置offset。

    1 String str = "asdfgh";
    2 boolean a = str.statWith("as");//a = true
    3 boolean b = str.endWith("gh");//b = true


        3)regionMatches(boolean b, int firstStart, String other, int otherStart, int length)//从当前字符串的firstStart位置开始比较,取长度为length的一个子字符串,other字符串从otherStart位置开始,指定另外一个长度为length的字符串,两字符串比较,当b为true时字符串不区分大小写。
        4)contains(String str)//判断参数s是否被包含在字符串中,并返回一个布尔类型的值。

    1 String str = "student";
    2 str.contains("stu");//true
    3 str.contains("ok");//false


        5)String[] split(String str)//将str作为分隔符进行字符串分解,分解后的字字符串在字符串数组中返回。

    1 String str = "asd!qwe|zxc#";
    2 String[] str1 = str.split("!|#");//str1[0] = "asd";str1[1] = "qwe";str1[2] = "zxc";
  • 相关阅读:
    Delphi / C++ Builder 使用 UDT ( UDP-based Data Transfer ) 4.11
    STUN: NAT 类型检测方法
    udt nat traverse
    UDT: Breaking the Data Transfer Bottleneck
    Freescale OSBDM JM60仿真器
    How To: Perl TCP / UDP Socket Programming using IO::Socket::INET
    NAT类型与穿透 及 STUN TURN 协议
    根据PID和VID得到USB转串口的串口号
    pic/at89c2051 programmer
    IC开短路测试(open_short_test),编程器测试接触不良、开短路
  • 原文地址:https://www.cnblogs.com/zhaochenguang/p/7743259.html
Copyright © 2011-2022 走看看