一、字符串String

字符串的内容是不可变的,它的对象在创建后不能被更改

1. 创建字符串:

①直接赋值 

②new关键字

package Test_API;

public class Test {
    public static void main(String[] args) {
        //1.直接赋值
        String s="abc";
        System.out.println(s);

        //2.new + 构造方式去创建字符串对象
        String s1=new String();
        System.out.println(s1);

        //3. new + 有参构造
        String s2=new String("abcd");
        System.out.println(s2);

        //4. new + 有参构造(字符串数组)
        char[] chs= {'a','b','c'};
        String s3=new String(chs);
        System.out.println(s3);

        //5.new + 有参构造 (字节数组)
        byte[] bytes={97,98,101};
        String s4=new String(bytes);
        System.out.println(s4);
    }
}

两种方式区别

直接赋值:代码简单,直接复用串池的数据,节省内存

new:每次都会创建一个新的的字符串对象

2. 字符串比较

boolean equals方法(要比较的字符串)   完全一样结果才是true,否则为false;

boolean equalsIgnoreCase(要比较的字符串)        忽略大小写的比较

案例:已知正确的用户名和密码,请用程序实现模拟用户登录总共给三次机会,登录之后,给出相应的提示

package API_Test;

import java.util.Scanner;

public class test {
    public static void main(String[] args){

       //1.已知正确的用户名和密码
        String rightUsername="zhangsan";
        String rightPassword="1234";

        //2.让用户录入登录的用户名和密码
        Scanner sc = new Scanner(System.in);

        //3.比较
        for(int i=1;i<=3;i++){
            System.out.println("请输入用户名:");
            String username=sc.next();
            System.out.println("请输入密码");
            String password=sc.next();

            boolean result=username.equals(rightUsername) && password.equals(rightPassword);
            if(result == true){
                System.out.println("登录成功");
                break;
            }else{
                if(i<=2){
                    System.out.println("登录失败,还剩"+(3-i)+"次机会");
                }else{
                    System.out.println("登录失败,锁定");
                }
            }
        }
    }
}

3.遍历字符串

 根据索引返回字符:字符串对象.charAt(int index) 

数组的长度:数组名.length

字符串的长度:字符串对象.length()

package API_Test;

import java.util.Scanner;

public class test1 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String s=sc.next();

        for(int i=0;i<s.length();i++){
            System.out.println(s.charAt(i));
        }
    }
}

4. 字符串的截取

截取到指定范围 字符串对象.substring(int beginIndex , int endIndex)

截取到末尾   字符串对象.substring (int beginIndex)

5. 字符串替换

字符串对象.replace(旧值,新值)

6.判断字符串是否包含另一个字符串

str1是否包含str2        boolean re=str1.contains("str2")

str1从1索引开始是否包含str2        boolean re=str1.startsWith("str2",1);

7.字符串查找

查找当前字符串第一次出现ch的位置     int index=str.indexOf(int ch)    //参数为ch的ASCLII码

查找当前字符串最后一次出现ch的位置        int index=str.lastIndexOf(int ch)

如果查找不存在,返回-1

8.判断是否为空

boolean empty = str.isEmpty( )

9.字符串转换

把字符串转为字符数组        char[ ] array = str.tocharArry()        //"abcd" ——>  ['a' , 'b' ,'c' , 'd']

数组变为数字符串        String res=ArrayUtil.arrayToString(arr)

大小写转换        String upperCase = str.toUpperCase()          str.toLowerCase()

10. StringBuilder

StringBuilder是字符串的一个工具类,可以让我们拼接字符串的时候效率更高

public StringBuilder()         创建StringBuilder容器,不含有任何内容

public StringBuilder(String str)        创建StringBuilder容器,包含指定的内容

 public static void main(String[] args){
        StringBuilder s=new StringBuilder();//创建StringBuilder的对象(容器)空参构造

        StringBuilder s1=new StringBuilder("abc");//创建StringBuilder的对象(容器)带参构造
        System.out.println(s1);

        s1.append("d");//添加
        s1.reverse();   //反转
        System.out.println(s1);
    }

StringBuilder append(任意类型)        添加数据

StringBuilder reverse()        反转容器中的内容

int length()        返回长度(字符的个数)

String toString()        转回String字符串对象

11. ArrayList集合

如果没有进行限定,集合里面可以存储任意数据类型的数据

 ArrayList list = new ArrayList(); //创建一个长度为0的ArrayList集合

泛型:限定集合当中的数据类型  <数据类型>

ArrayList<String> list1=new ArrayList<String>();

集合增删改查

//添加数据
        list1.add("aaa");
        list1.add(0,"bb");
        list1.add("ccc");

        //删除元素

        list1.remove("aaa");
        String res=list1.remove(1); //res为被删除的元素

        //修改元素
        String r=list1.set(0,"zzz");


        //获取元素 
        for(int i=0;i<list1.size();i++){
            //依次获取集合中的每一个元素
            System.out.println(list1.get(i));

        }

12. Math类

更多推荐