JAVA学习--常用API--String&Arraylist

*包是用来分门别类的管理各种不同程序的,类似于文件夹,J建包有利于程序的管理和维护
斜体样式

一、String概述

java.lang.String代表字符串 提供封装字符串数据 处理字符串的方法
*(1)、创建对象 (2)、封装字符串数据 (3)、调String的方法

*package pkg;
import itcask.Demo1;
import itheima.Demo2;
import java.util.Random;
import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        //1、同一个包下的程序,可以直接访问。
        Demo d=new Demo();
        d.print();
        //2、访问其他包下的程序,必须导包才可以访问
        Demo1 f=new Demo1();
        f.println();
        //3、自己的程序中调用Java提供的程序,也需要先到导包才可以使用。注意:java.long包下的程序是不需要我们导包的
        Scanner sc=new Scanner(System.in);
        String s="黑马";
        Random r=new Random();
        //4、访问多个其他包下的程序,这些程序名有一样的情况下,默认只能导入一个程序,另一个程序必须带包名和类名来访问
        Demo2 d3=new Demo2();
        d3.println();
        itcask.Demo2 d4=new itcask.Demo2();
        d4.println();
    }`在这里插入代码片`
}*

在这里插入图片描述

package String;

public class StringDemo1 {
    public static void main(String[] args) {
        //1、直接双引号得到字符串对象,封装字符串数据
        String name="itheime";
        System.out.println(name);

        //2、new String 创建的字符,并调用构造器初始化字符串
        String rs1=new String("ghjk");
        System.out.println(rs1);

        char[] chars={'a','黑','马'};
       String rs2=    new String(chars);
        System.out.println(rs2);

        byte[] bytes={97,98,99};
        String rs3=new String(bytes);
        System.out.println(rs3);

小结:
在这里插入图片描述

二,String的常用方法

在这里插入图片描述

package String;

public class StringDemo2 {
    public static void main(String[] args) {
        //目标:快速熟悉String提供的处理字符串的常用方法
        String s="zxvb";
        // 1、获取字符串的长度
        System.out.println(s.length());

        // 2、提取字符串中某个索引位置处的字符
        char c=s.charAt(1);
        System.out.println(c);

        //字符串的遍历
        for (int i = 0; i < 4; i++) {
            char ch=s.charAt(i);
            System.out.println(ch);
        }
        //3、把字符串转换成字符数组,再进行遍历
        char[] chars=s.toCharArray();
        for (int i = 0; i < chars.length; i++){
        System.out.println(chars[i]);
        }

        //4、判断字符串内容,内容一样就返回true
        String s1=new String("阮新宇666");
        String s2=new String("阮新宇666");
        System.out.println(s1==s2);// false
        System.out.println(s1.equals(s2));//true

        //5、忽略大小写比较字符串内容
        String c1="34AeFG";
        String c2="34aEfg";
        System.out.println(c1.equals(c2));//false
        System.out.println(c1.equalsIgnoreCase(c2));//true

        //6、截取字符串内容(包前不包后的)
        String s3="java是最好的编程语言之一";
        String rs=s3.substring(0,8);
        System.out.println(rs);

        //7、从当前索引位置一直截取到字符串的末尾
        String rs2=s3.substring(5);
        System.out.println(rs2);

        //8、把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
        String info="这个游戏简直是个垃圾,垃圾游戏";
        String rs3=info.replace("垃圾","**");
        System.out.println(rs3);

        //9、判断字符串中是否包含某个关键字
        String info2="java是最好的编程之一,我爱java,java不爱我";
       System.out.println( info2.contains("java") );
       System.out.println( info2.contains("Java") );

        //10、判断字符串是否以某个字符串开头
        String rs4="张三丰";
        System.out.println(rs4.startsWith("张"));//true
        System.out.println(rs4.startsWith("张2"));//false

        //11、把字符串按照某个指定内容分割成多个字符串,放到一个字符串数组中返回给我们
        String rs5="张无忌,周芷若,殷素素,赵敏";
        String[] names=rs5.split(",");
        for (int i = 0; i < names.length ; i++) {
            System.out.println(names[i]);
        }
    }
}

三、String使用时的注意事项

在这里插入图片描述
注意事项2:
*只要是以“…”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份
*但通过new方一个新的对象nde,每new一次都会产生一个新的对象放在堆内存中
java存在编译优化机制,程序在编译时:“a”+“b”+“c”会直接转换成“abc,以提高程序的执行性能”

四、String案例

在这里插入图片描述

package String;

import java.util.Scanner;

public class StringTest4 {
    public static void main(String[] args) {
        //1、开发一个登录界面
        for (int i = 0; i < 3; i++) {


            Scanner sc = new Scanner(System.in);
            System.out.println("请您输入登录名称");
            String loginName = sc.next();
            System.out.println("请您输入登录密码");
            String passWord = sc.next();


            //5、开始调用登录方法,判断是否登录成功
            boolean rs = login(loginName, passWord);
            if (rs) {
                System.out.println("恭喜您,欢迎进入系统");
                break;
            } else {
                System.out.println("登录名或密码错误,请您确认");

            }
        }
    }
    //2、开发一个登录方法,接受用户的登录名和密码,返回认证的结果

    public static boolean login(String loginName,String passWord){
        //3、准备一份正确的登录名和密码
        String okLoginName="itheima";
        String okPassWord="123456";


        //4、开始正式判断用户是否登陆成功
        //登陆成功
        return okLoginName.equals(loginName) && okPassWord.equals(passWord);
    }
}

在这里插入图片描述
在这里插入图片描述

package String;

import java.util.Random;

public class StringDemo5 {
    public static void main(String[] args) {
        //1、设计一个方法返回指定位数的验证码

        System.out.println(createCode(6));
        }

        public static String createCode(int n){
        //2、定义2个变量,一个记住最终产生的随机验证码 一个记住可能用到的全部字符
            String code="";
            String data="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            //3、开始定义一个循环产生每位随机字符

            Random r=new Random() ;
            for (int i = 0; i < n; i++) {
                //4、随机一个字符范围内的索引
               int index=r.nextInt(data.length()) ;
               //5、根据索引去全部字符中提取该字符
                code+=data.charAt(index);
            }
            //6、返回code即可
            return code;
        }
    }

五、ArrayList快速入门

什么是集合?
集合是一种容器,是用来装数据的,类似于数组。
有数组,为啥还要学习集合?
1,数组完成并启动后,长度就固定了。
2,集合大小可变,开发中用得更多。
ArrayList集合
1、会提供创建容器对象的方式。
2、会提供相应的方法 (添加数据、删除某个数据、修改某个数据、获取某个数据)对容器进行操作。
学习ArrayList
1、创建对象。
2、增删改查的方法。
3、容器的其他特点。
在这里插入图片描述

package arrayList;

import java.util.ArrayList;

public class arrayListDemo1 {
    public static void main(String[] args) {
        //1、创建一个ArrayList的集合对象
        //ArrayList<String>list=new ArrayList<String>();
        ArrayList<String>list=new ArrayList<>();
        list.add("阮新宇");
        list.add("阮新宇");
        list.add("taoke");
        System.out.println(list);

        //2、往集合中某个索引位置处添加一个数据
        list.add(1,"MySQL");
        System.out.println(list);

        //3、根据索引获取集合中某个索引位置处得值
        String rs=list.get(1);
        System.out.println(rs);

        //4、获取集合的大小(返回集合中存储的元素个数)
        System.out.println(list.size());

        //5、根据索引删除集合中的某个元素值,会返回被删除的元素给我们
        System.out.println(list.remove(1));
        System.out.println(list);

        //6、直接删除某个元素值,删除成功会返回true,反之false
        System.out.println(list.remove("taoke"));
        System.out.println(list);

        list.add(1,"666");
        System.out.println(list);

        //默认删除的是第一次出现“阮新宇”这个数据的
        System.out.println(list.remove("阮新宇"));
        System.out.println(list);

        //7、修改某个索引位置处的数据,修改后会返回原来的值给我们
        System.out.println(list.set(1,"刘林"));
        System.out.println(list);
    }
}

在这里插入图片描述
在这里插入图片描述

六、ArrayList应用案例

在这里插入图片描述

package arrayList;

import java.util.AbstractList;
import java.util.ArrayList;

/**
 目标:掌握从集合容器中找数据并删除的技巧

 list.add("java入门");
 list.add("宁夏枸杞");
 list.add("黑枸杞");
 list.add("人字拖");
 list.add("特级枸杞");
 list.add("枸杞子");
*/
public class ArrayListTest2 {
    public static void main(String[] args) {
       //1、创建一个ArrayListTest集合对象
        ArrayList<String> list=new ArrayList<>();
        list.add("java入门");
        list.add("宁夏枸杞");
        list.add("黑枸杞");
        list.add("人字拖");
        list.add("特级枸杞");
        list.add("枸杞子");
        System.out.println(list);//[java入门,宁夏枸杞,黑枸杞,人字拖,特级枸杞,枸杞子]

        //2、开始完成需求:从集合中找出包含枸杞的数据并删除它
        /**for (int i = 0; i <list.size() ; i++) {
           //i=0 1 2 3 4 5
            //取出当前遍历到的数据
            String ele= list.get(i);
            //判断这个数据中包含枸杞
            if (ele.contains("枸杞")){
                //直接从集合中删除数据
                list.remove(ele);
            }
        }
        System.out.println(list);
        */
        //会出bug,两个相邻且存在“枸杞”的数据删除第一个后第二个会在前一个的位置,而i会加1
        //解决方法一:在list.remove(ele)后加i--
        /**
         for (int i = 0; i <list.size() ; i++) {
         //i=0 1 2 3 4 5
         //取出当前遍历到的数据
         String ele= list.get(i);
         //判断这个数据中包含枸杞
         if (ele.contains("枸杞")){
         //直接从集合中删除数据
         list.remove(ele);
         i--;
         }
         }
         System.out.println(list);
        */
        //解决方法二:从集合的后面倒着遍历并删除
        for (int i = list.size()-1; i >=0; i--) {
            //取出当前遍历的数据
            String ele=list.get(i);
            //判断这个数据中包含枸杞
            if (ele.contains("枸杞")) {
            //直接从集合删除该数据
                list.remove(ele);
            }
        }
        System.out.println(list);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值