String&集合

String:
    是一个类
    使用时不需要import(导包)
    在java中见到的所有双引号包裹起来的内容都是String类的实例(对象)

构造:
    new String()    :常创建一个空白的字符串对象
    new String(char[] c):根据数组的内容创建字符串对象        
    new String(char[] c,int offset,int lenght):根据数组的一部分创建字符串对象,通过offset开始获取lenght个内容

例:

/**
 * offset:偏移量 理解为下标(索引)
 * String(byte[] bytes, int offset, int length)
 * 使用字节数组的一部分来构造新的 String 。
 * 子阵列
 * byte[] bytes={97,98,99,100,101,102} abcdef
 */
public class Demo_01 {
    public static void main(String[] args) {
        byte[] b1 = {1,2,3,4,65,98,99,8,9};
        String s = new String(b1,4,3);
        System.out.println(s);
    }
}


    String str="abc":当作基本数据类型使用

使用:
    1.当作基本数据使用
        格式:
            String str="abc":
    2.当作引用数据使用
        格式:
            String str=new 构造(参数);
    区别:
        当作基本数据使用:创建对象首先在内容中查找是否存在,存在->直接使用,不存在->创建
        当作引用数据使用:直接开辟空间对象对象

特点:
    1.String是特殊的引用数据类型    
    2.String的值(字符串内容)一旦创建,不可更改
    3.String的值(字符串内容),可以被共享
    4.String可以看作char的数组,更底层是byte数组

    操作:
        切分:split(String regex)
        替换:replce(String oldStr,String newStr)
        截取:subString(int index)

//spilt,切分数据
//1001,zs,18,男,180
//10015000,zsl,18,男,180

public class Demo_04 {
    public static void main(String[] args) {
        String s1 = "1001,zs,18,男,180";
        String s2 = "10015000,zsl,18,男,180";
        String[] split = s1.split(",");//利用,作为分隔符,切分数据
        String s = split[3];
        System.out.println(s);
        System.out.println(split.length);
    }

}

转义符:\
    对一个符号及进行转义
    只能对转义符\之后第一个符号
    转义:关键字<->String默认输出

    例子:
        "n":默认输出
        "\n":n关键字换行符

String的拼接会创建一个新的对象,耗时耗资源
StringBuilder:可变的字符序列(可变的字符数组)
    构造:
        StringBuilder()    创建一个空白的StringBuilder对象,不含有任何内容
        StringBuilder(String str)    根据字符串的内容,创建StringBuilder对象
    方法:
        public StringBuilder append(任意类型)    添加数据并返回对象本身
        public StringBuilder reverse()            返回相反的字符序列

什么时候使用StringBuilder
    1.String需要拼接的时候
    2.String中有些需求使用StringBuilder的中方法可以直接完成,不需要手写代码

String和StringBuilder:有些功能只能在String(+=)或StringBuilder(reverse())
    String->StringBuilder:new StringBuilder(String str)    
    StringBuilder->String:StringBuilder对象.toString();


集合ArrayList<E>:存储长度可变的多个相同数据,长度可变的数组
    E:泛型,集合想要插入的数据,Object想要插入的数据。一旦使用类型替换E,类中的所有的E都发生改变

    构造:
        public ArrayList()    创建一个空白的对象
        public ArrayList(int initCount)    创建一个指定初始容量 空白的对象
    添加:
        public boolean add(E e)    将指定的元素追加到集合末尾
            注意:返回值永远为true不需要接受数据,直接使用
        public void add(int index,E element)    在集合中的指定位置插入指定的元素
    操作:
        public boolean remove(Object o)    删除指定元素,返回删除是否成功
        public E remove(int index)    删除指定索引的元素,返回删除的元素
        public E set(int index,E element)    修改指定索引的元素,返回被修改的元素
        public E get(int index)    返回指定索引的元素
        public int size()    返回集合中元素个数

例:

//集合:可变数组
public class Demo_09 {
    public static void main(String[] args) {
        ArrayList<Object>objects = new ArrayList<>(16);
        System.out.println(objects);


//
//public ArrayList<E:想要插入的数据类型>()  E=String
//public boolean add(E e)	将指定的元素追加到集合末尾
//public void add(int index,E element)	在集合中的指定位置插入指定的元素
       
        ArrayList<String>strs = new ArrayList<>();
        strs.add("abc");//向集合中添加“abc”
        System.out.println(strs);
        strs.add("def");//在集合后面添加“def”
        System.out.println(strs);
        strs.add(0,"123");//在集合下标为0的位置添加“123”
        System.out.println(strs);
   

/*
    Object:想要插入的类型
    public boolean remove(Object o)	删除指定元素,返回删除是否成功
    public E remove(int index)	删除指定索引的元素,返回删除的元素
    public E set(int index,E element)	修改指定索引的元素,返回被修改的元素
    public E get(int index)	返回指定索引的元素
    public int size()	返回集合中元素个数
 */

public class Demo_09 {
    public static void main(String[] args){
        ArrayList<String>strings = new ArrayList<>();
        strings.add("a");
        strings.add("b");
        strings.add("c");
        strings.add("d");
        strings.add("e");
        strings.add("f");
        strings.add("g");
        String a = strings.remove(2);//remove删除指定位置的元素并返回被删除的元素
        System.out.println(strings);
        System.out.println(a);
        String b = strings.set(1,"123");//set修改指定位置的元素,并返回被修改的元素
        System.out.println(b);
        System.out.println(strings);

        String c = strings.get(5);
        System.out.println(c);

        int d = strings.size();
        System.out.println(d);
        boolean q = strings.remove(a);
        System.out.println(q);

注意:
    集合不能存储基本数据类型

通过装箱和拆箱        
    装箱:基本数据类型转化为包装器类(引用数据类型)
        例如:
            Integer i=10;
            Integer a=Integer.valueOf(10);//也可以直接赋值的方式Integer a = 10;
    拆箱:将包装器类型转换为基本数据类型
    范例:
        1.int i=a.intValue();
        2.Integer a=10;

    通常用来进行和String相互转化
    int和String的互换
        int转String
               int不能直接转换为String,要通过String类,调用类中的方    法(valueOf())来进行转换
            例如:String s=String.valueOf(10);
        String转int
               String不能直接转换为int,要通过int的包装类Integer,调           用类中的方法(valueOf())来进行转换
            例如:int i=Integer.valueOf("a");
            注意:String转int时,String的内容只能为数字


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值