zoukankan      html  css  js  c++  java
  • 【JAVA基础】String 类

    所属包:java.lang.String

    程序当中所有的双引号字符串,都是String类的对象。(就算没有new,也照样是)

    1)字符串的特点:
    1. 字符串的内容永不可变。【重点】
    2. 正是因为字符串不可改变,所以字符串是可以共享使用的。
    3. 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。

    2)创建字符串的常见3+1种方式。
    三种构造方法:
    public String():创建一个空白字符串,不含有任何内容。
    public String(char[] array):根据字符数组的内容,来创建对应的字符串。
    public String(byte[] array):根据字节数组的内容,来创建对应的字符串。
    一种直接创建:
    String str = "Hello"; // 右边直接用双引号

    注意:直接写上双引号,就是字符串对象。

    3)字符串比较:

    字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。

    对于基本类型来说,==是进行数值的比较。
    对于引用类型来说,==是进行【地址值】的比较。

    双引号直接写的字符串都在常量池中,通过构造方法new 出来的不再常量池中

    public class DemoString {
    
    
        public static void main(String[] args) {
            String str1="abc"; //直接创建字符串,直接进入字符串常量池,可以共享的
    
            char[] charList={'a','b','c'}; //通过构造方法,字符数组创建字符串
            String str2= new String(charList);
    
            byte[] byteList={97, 98, 99}; //通过构造方法,字节数组创建字符串
            String str3= new String(byteList);
    
            String str4= new String();  //通过构造方法创建空字符串
    
            System.out.println(str1);//abc
            System.out.println(str2);//abc
            System.out.println(str3);//abc
            System.out.println(str4);//""
    
            System.out.println("==============");
    
            String str5= "abc";
            System.out.println(str1==str5); //true
            System.out.println(str1==str2); //false
            System.out.println(str1==str3); //false
            System.out.println(str2==str3); //false
    
    
        }
    }
    

    4)String 类的获取常见方法:

    1、public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false。

    注意事项:
      1. 任何对象都能用Object进行接收。
      2. equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。
      3. 如果比较双方一个常量一个变量,推荐把常量字符串写在前面。

      4.==是进行对象的地址值比较,如果确实需要字符串的内容比较,使用equals方法
        推荐:"abc".equals(str) 不推荐:str.equals("abc")

    2、public boolean equalsIgnoreCase(String str):忽略大小写,进行内容比较。

    3、public int length():获取字符串当中含有的字符个数,拿到字符串长度。
    4、public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串。
    5、public char charAt(int index):获取指定索引位置的单个字符。(索引从0开始。)
    6、public int indexOf(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值。

    public class demoEquals {
    
    
        public static void main(String[] args) {
            String str1="abc"; //直接创建字符串,直接进入字符串常量池,可以共享的
    
            char[] charList={'a','b','c'}; //通过构造方法,字符数组创建字符串
            String str2= new String(charList);
    
            byte[] byteList={97, 98, 99}; //通过构造方法,字节数组创建字符串
            String str3= new String(byteList);
    
            System.out.println(str1.equals(str2)); //true
            System.out.println(str1.equals(str3)); //true
            System.out.println(str3.equals(str3)); //true
    
    
            String str4="HelloWorldiampaul";
            System.out.println(str4.length());
            System.out.println(str4.concat(str1)); //HelloWorldiampaulabc
            System.out.println(str4.charAt(1)); //e
            System.out.println(str4.indexOf("llo")); //2
        }
    
    }
    

     5)String 类的截取及分片常见方法: 

    1、public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串。
    2、public String substring(int begin, int end):截取从begin开始,一直到end结束,中间的字符串。
          备注:[begin,end),包含左边,不包含右边。

    3、public String[] split(String regex):按照参数的规则,将字符串切分成为若干部分。

      注意事项:
        split方法的参数其实是一个“正则表达式”,今后学习。
        今天要注意:如果按照正则的匹配符进行切割,必须写"\"(两个反斜杠),如“\.”

    public class StringSubstring {
    
        public static void main(String[] args) {
            String str1="xx*yy*zz";
            System.out.println(str1.substring(2)); //*yy*zz
            System.out.println(str1.substring(2,7)); *yy*z
            System.out.println("==============");
    
            String[] strList = str1.split("\*"); //["xx","yy","zz"]
            System.out.println(strList.length);
        }
    }
    

      6)String与数组的相关转换的方法

    1、public char[] toCharArray():将当前字符串拆分成为字符数组作为返回值。
    2、public byte[] getBytes():获得当前字符串底层的字节数组。
    3、public String replace(CharSequence oldString, CharSequence newString):将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串。
              
      备注:CharSequence意思就是说可以接受字符串类型。

    public class StringToArray {
    
        public static void main(String[] args) {
            String str1="abc";
            char[] charList= str1.toCharArray();
            System.out.println(charList[0]); //a
            byte[] byteArray= str1.getBytes();
            System.out.println(byteArray[0]); //97
    
            String str2= str1.replace("c","d"); //abd
            System.out.println(str2);
        }
    }
    

      

  • 相关阅读:
    hdu 4777 树状数组+合数分解
    hdu5635 BestCoder Round #74 (div.2)
    hdu 5636 搜索 BestCoder Round #74 (div.2)
    hdu 5637 BestCoder Round #74 (div.2)
    hdu4605 树状数组+离散化+dfs
    hdu4521 线段树+dp
    hdu3340 线段树+多边形
    孜孜不倦,必能求索;风尘仆仆,终有归途。
    增加、删除类文件或者在一个类中增加、删除方法时,是不能够热部署到服务上的。这时候需要停止服务器重新部署后再启动,就不会出现上面的提示了。
    为什么jdk1.8不支持sql.append,该如何解决
  • 原文地址:https://www.cnblogs.com/paulwinflo/p/12937682.html
Copyright © 2011-2022 走看看