Java SE学习总结 Day (14)

Day 14开篇:
      
        "
今天java基础主要学习了String类,String字符串,String的构造,字符串的特点,String的常用方法,String判断相关的功能, String的转换功能等。 "


知识点反馈:

今天的知识点和每周总结的思维导图
 
 

 

一. String类
1. String字符串:
(1)定义:其实就是由一连续的字符组成的一串数据,可以称之为字符串
(2)刚才通过API,我们知道如下问题:
<1>JDK的数据类型当中,并没有字符串的类型,所谓的字符串其实还是一堆char类型的字符组成起来的
<2>字符串是一个常量数据,一旦赋值 无法改变
2. String的构造:
(1)String():空构造
(2)String(byte[] bytes):根据默认的编码格式,将一个byte的数组转换成字符串(其实就是按照ascii码来转的)
(3)String(byte[] bytes, int index, int length):根据默认的编码格式,将一个byte的数组部分转换成字符串)
            index:从指定索引开始
            length:需要转换多少个
(4) String(char[] value):将一个字符数组转换成字符串
(5) String(char[] value, int index, int length):将一个字符数组的部分转换成字符串(参考byte的类型就可以了)
(6) String(String original):将一个常量字符串转换字符串
3. 字符串的特点:
(1) 因为是常量类,无法被继承,且大部分的修饰也不运行字符串的值被进行改变
4. String s = "hello"和 String s = new String("hello")的区别:
(1)从最终实现结果来说,没有任何区别,但是第一个定义方式只会创建一个内存
  (如果能在常量池找到hello,则不创建空间,如果找不到则创建一块常量池空间)
(2) 而第二种方式则创建两个两个内存(new出来的对象会有堆内存,而hello如果找不到,还会创建一个常量池的内存)
5. 例子:
public class StringDemo05 {
public static void main(String[] args) {
        String s1 = "hello";//0x0001
        String s2 = "word";//0x0002 //0x0003
        String s3 = "helloword";
        System.out.println(s3 == s1 + s2);//false
        System.out.println(s3.equals(s1+s2));//true
System.out.println(s3 == "hello"+"word");//true
        System.out.println(s3.equals("hello"+"word"));//true
//其实编译器在处理这个情况的时候已经对两个数据进行了拼接,
        //拼接后的结果就是helloword,而这个helloword已经在s3定义的时候就已经开辟空间
        //因为已经存在,所有就保持的是同一块空间
        System.out.println((s3 == "helloword"));
        System.out.println(s3.equals("helloword"));
 
    }
}
 
 
二. String的常用方法
1. String判断相关的功能:
(1) boolean equals(Object obj):判断两个字符串的内容是否相等
(2) boolean        equalsIgnoreCase(String anotherString):比较两个字符串是否相符,不考虑大小写问题
(3) boolean        contains(String s):判断字符串当中是否包含某一个字符串,如果存在则返回true
(4) boolean        startsWith(String prefix):判断字符串是否以指定字符(串)开始
(5) boolean        endsWith(String suffix):判断字符串是否以指定字符(串)结束
(6) boolean        isEmpty():判断字符串内容是否为空(不是判断地址)
(7) int length():获取字符串的长度
2. String的注意事项:
(1)字符串为空的几个状态:
                String str = "";//字符串不包含任何内容
                String str = null;//字符不存在地址
(2)equals如何判断内容为空:
                equals(null);判断内容是否为空 等价 isEmpty()
                == null;判断地址为空
(3)isEmpty的实现原理其实就是判断字符串长度是否等于0,非常简单直观 而 equals(null)需要大量的重写Object的方法,效率要低于isEmpty,一般推荐使用isEmpty。
3. String获取相关功能:
(1) String length();获取字符串的长度
(2) char charAt(int index):根据索引位置返回一个字符
(3) int        indexOf(int ch):根据一个字符(是一个重载方法)返回该字符的第一次出现的索引位置
(4) int        indexOf(String str, int fromIndex):从指定位置开始查找字符出现的位置,索引位置不变
(5) String        substring(int beginIndex):从指定位置开始截取字符串,默认到达末尾。(包含开始位置本身)
(6) String        substring(int beginIndex, int endIndex):从指定位置开始,到指定位置结束截取字符串(包含开始位置本身,但是不包含结束位置)
4. String的转换功能:
(1)byte[]        getBytes():把一个字符串转换成byte的数组
(2)byte[] getBytes(String charsetName):根据指定字符集编码,转化字符串为字节数组
(3)char[] toCharArray():将一个字符串转换为字符数组
(4)static String        valueOf(char[] data):将一个字符数组转换成字符串(常用)(注意:valueOf可以将任意数据类型全部转换成字符)
(5)String        toLowerCase():将字符串的内容全部转换为小写
(6)String        toUpperCase():将字符串的所有内容转换为大写
(7)String concat(String str):将两个字符串进行拼接
5. String的常用方法:
(1) String [] split(String regex):根据指定的字符进行字符串拆解
(2)String        replace(char oldChar, char newChar):将一个字符串的字符转换为指定字符
        oldChar:需要被转换的字符(旧)
        newChar:要替换的字符(新)
(3)String        trim():自动去除首尾空格
(4)int lastIndexOf(String str):查找指定字符串在文本当中最后一次出现的索引位置
(5) 获取12306的某个数据:
<1>非标准的JSON格式:
            Jquery201920137*123/{username:toobug,password:admin,sex:n}
<2>需要的格式:
            username:toobug|password:admin|sex:n
 
 
 



 

发布了29 篇原创文章 · 获赞 7 · 访问量 3168

猜你喜欢

转载自blog.csdn.net/weixin_45406656/article/details/104228327
今日推荐