Java在手,世界我有!!!Java基础——String类

目录

String是什么

字符串的特点

 创建字符串常见的3+1种方法

String中== 使用注意事项

String当中常用方法

 1.equals的使用方法

 2.String当中与获取相关的常用方法有

 3.字符串的截取方法

 4.String 当中与转换相关的常用方法有

 5.分割字符串的方法


String是什么

java.lang.String类代表字符串
API当中说:Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。意思是:程序当中的所有的双引号字符串,都是String类的对象(就算没有new,也照样是)。
 

字符串的特点

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

创建字符串常见的3+1种方法

三种构造方法:
public String():创建一个空白字符串,不含有任何内容
public String(char[] array):根据字符数组的内容,来创建对应的字符串。
public String(byte[] array):根据字节数组的内容,来创建对应的字符串。
一种直接创建:
String str="Hello";     //右边直接用双引号
注意:直接写上双引号,就是字符串对象。(默认已经new了)
public class Demo01String {
    public static void main(String[] args) {
        //使用空参构造,小括号留空,说明字符串什么内容都没有
        String str1=new String();       
        System.out.println("第1个字符串:"+str1);
        //根据字符数组创建字符串
        char[] charArray={'A','B','C'};
        String str2=new String(charArray);
        System.out.println("第2个字符串:"+str2);
        //根据字节数组创建字符串
        byte[] byteArray={97,98,99};
        String str3=new String(byteArray);
        System.out.println("第3个字符串:"+str3);
        //直接创建
        String str4="Hello";
        System.out.println("第4个字符串:"+str4);
    }
}

String中== 使用注意事项

    字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池当中。new的不在池当中。
    对于基本类型来说,==进行的是数值的比较,
    对于引用类型来说,==是进行【地址值】的比较。
public class Demo02String {
    public static void main(String[] args) {
        String str1="abc";
        String str2="abc";
        char[] charArray={'a','b','c'};
        String str3=new String(charArray);

        System.out.println(str1==str2);     //true
        System.out.println(str1==str3);     //false
        System.out.println(str3==str2);     //false
    }
}

String当中常用方法

 1.equals的使用方法

==是对象进行的地址值比较,如果确实需要字符串的内容进行比较,可以使用两个方法
第一种方法:
public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的时候才会给true,否则返回false
注意事项:
1.任何对象都能用Object进行接受
2.equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样
3.如果比较双方一个常量一个变量,推荐将常量字符串写在前面
推荐:"abc".equals(str)   不推荐:str.equals("abc")
第二种方法:
public boolean equalsIgnoreCase(String str):忽略大小写,进行内容比较。
public class Demo03StringEquals {
    public static void main(String[] args) {
        String str1="Hello";
        String str2="Hello";
        char[] charArray={'H','e','l','l','o'};
        String str3=new String(charArray);

        System.out.println(str1.equals(str2));      //true
        System.out.println(str2.equals(str3));      //true
        System.out.println(str3.equals("Hello"));   //true
        System.out.println("Hello".equals(str3));   //true

        String str4="hello";
        System.out.println(str1.equals(str4));      //false
        System.out.println("*****************************************");

        String str5="abc";
        System.out.println("abc".equals(str5));     //推荐写法
        System.out.println(str5.equals("abc"));     //不推荐

        String str6=null;
        System.out.println("abc".equals(str6));     //推荐写法
        //System.out.println(str6.equals("abc"));     //不推荐,报错  NullPointerException空指针异常

        System.out.println("****************************************");
        String str7="ABC";
        String str8="abc";
        System.out.println(str7.equals(str8));      //false
        //不区分大小写的比较
        System.out.println(str7.equalsIgnoreCase(str8));    //true
    }
}

2.String当中与获取相关的常用方法有

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

        //获取字符串的长度
        int length="jfkdjfkjdkfjkdsjfkasjfksd".length();
        System.out.println("字符串长度是:"+length);
        System.out.println("********************************");
        
        //拼接字符串
        String str1="Hello";
        String str2="World";
        String str3=str1.concat(str2);
        System.out.println(str1);   //Hello 原封不动
        System.out.println(str2);   //World 原封不动
        System.out.println(str3);   //HelloWorld  新字符串
        System.out.println("********************************");

        //获取指定索引位置的单个字符
        char ch="Hello".charAt(1);      
        System.out.println("第1号索引位置的字符是:"+ch);    //e
        System.out.println("********************************");

        //查找参数字符串在本来字符串当中第一次出现的索引位置
        //如果根本没有,返回-1
        String original="HelloWorldHelloWorldHelloWorld";
        int index=original.indexOf("llo");
        System.out.println("第一次索引值是:"+index);       //2
        int index1=original.indexOf("abc");
        System.out.println("第一次索引值是:"+index1);       //-1
    }
}

 3.字符串的截取方法

public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串
public String substring(int begin,int end):截取从begin开始,一直到end结束,中间的字符串。
备注:[begin.end):包含左边,不包含右边
public class Demo05Substring {
    public static void main(String[] args) {
        String str1="HelloWorld";
        String str2=str1.substring(5);
        System.out.println(str1);       //HelloWorld 原封不动
        System.out.println(str2);       //World 新字符串
        System.out.println("************************************");

        String str3=str1.substring(4,7);
        System.out.println(str3);       //oWo
        System.out.println("*************************************");
    }
}

 4.String 当中与转换相关的常用方法有

public char[] toCharArray():将当前字符串拆分为字符数组作为返回值
public byte[] getBytes():获得当前字符串底层的字节数组
public String replace(CharSequence oldString,CharSequence newString):
将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串
public class Demo06StringConvert {
    public static void main(String[] args) {

        //转换成字符数组
        char[] chars="Hello".toCharArray();
        System.out.println(chars[0]);   //H
        System.out.println(chars.length);       //5
        System.out.println("*****************************");

        //转换成字节数组
        byte[] bytes="abc".getBytes();
        for (int i=0;i<bytes.length;i++){
            System.out.println(bytes[i]);        97  98 99
        }
        System.out.println("*****************************");

        //字符串内容的替换
        String str1="How do you do?";
        String str2=str1.replace("o","*");
        System.out.println(str1);   //How do you do?
        System.out.println(str2);   //H*w d* y*u d*?
        System.out.println("*****************************");
    }
}

 5.分割字符串的方法

public String[] split(String regex):按照参数的规则,将字符串切分为若干个部分
注意事项:
split方法的参数其实是一个”正则表达式“
如果按照英语句点”.“进行切分,必须写成:"\\."(加两个反斜杠)
public class Demo07StringSplit {
    public static void main(String[] args) {
        String str1="aaa,bbb,ccc";
        String[] array1=str1.split(",");
        for (int i = 0; i < array1.length; i++) {
            System.out.println(array1[i]);
        }
        System.out.println("*******************************");
    }
}

猜你喜欢

转载自blog.csdn.net/wtt15100/article/details/108045469