Java API的使用1

第一节 API的使用

1.API

1.1 API概述

API(application programing interface):应用程序编程接口

Java API :值的就是JDK中提供的各种功能的Java类

这些类将底层的实现封装起来,我们不需要关系这些类是如何实现的

只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用

1.2 如果使用帮助文档

  1. 右键打开该文档

在这里插入图片描述

  1. 找到索引选项卡中的输入框

在这里插入图片描述

  1. 在输入框中输入Random

在这里插入图片描述

  1. 看类在哪个包下

在这里插入图片描述

  1. 看类的描述信息

在这里插入图片描述

  1. 看构造方法
    在这里插入图片描述

  2. 看成员方法

在这里插入图片描述

1.3 API 使用练习

在这里插入图片描述

import java.util.Scanner;

public class ScannerDemo {
    /**
     * Scanner:
     *          用于获取键盘录入数据(基本数据类型,字符串数据)
     *          
     *  public String nextLine():
     *          获取键盘录入字符串数据
     *
     */
    
     public static void main(String[] args) {
        //创建对象
        Scanner sc =new Scanner(System.in);

        //接收数据
        System.out.println("请输入一个字符串数据:");
        // String line = sc.nextLine();
       
       //Ctrl+Alt+V
        String line=sc.nextLine();

        //输出结果
        System.out.println("你输入的数据是:"+line);
    }
}

注意:

调佣方法的时候,如果方法有明确的返回值,我们用变量接收可以手动完成,也可以使用快捷键的方式完成Ctrl+Alt+V

2.String类

2.1 String概述

String类在java.lang包下,所以使用的使用不需要导包

String类代表字符串,Java程序中的所有字符串文字(例如:“124”)都被实现为此类的实例也就是说,Java程序中所有的双引号字符串,都是String类的对象。

字符串特点:

  • 字符串不可变,它们的值在创建后不能被更改
  • 虽然String的值是不可变的,但他们的可以被共享
  • 字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[])

2.2 String 构造方法

在这里插入图片描述

/**
 * String构造方法:
public String():创建一个空白字符串对象,不含有任何内容
public String(char[ ] chs):根据字符数组的内容,来创建字符串对象
public String(byte[] bys):根据字节数组的内容,来创建字符串对象
String s =“abc;直接赋值的方式创建字符串对象,内容就是abc

 */
public class StringDemo01 {
    public static void main(String[] args) {
        //public String():创建一个空白字符串对象,不含有任何内容
        String s1 =new String();
        System.out.println("s1:"+s1);

        //public String(char[ ] chs):根据字符数组的内容,来创建字符串对象
        char[] chs = {'1','2','3'};
        String s2 = new String(chs);
        System.out.println("s2:"+s2);
        
        
        //public String(byte[] bys):根据字节数组的内容,来创建字符串对象
        byte[] bys = {97,98,99};
        String s3 = new String(bys);
        System.out.println("s3:"+s3);


        //String s =“abc;直接赋值的方式创建字符串对象,内容就是abc
        String s = "abc";
        System.out.println("s:"+s);

    }
}

2.3 String 对象特点

  1. 通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址不同

在这里插入图片描述

上面代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的

  1. 以“ ”方式出现给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护。

在这里插入图片描述

上面的代码中。针对第一行代码,JVM会建立一个String对象放在字符串池中,并给s3参考;第二行则让s4直接参考字符串池中的String对象,也就是说它们本质上是同一个对象

在这里插入图片描述

public class StringDemo02 {
    public static void main(String[] args) {
        //构造方法的方式得到对象
    char[] chs = {'a','b','b'};
    String s1 = new String(chs);
    String s2 =new String(chs);
    System.out.println(s1==s2);

    //直接赋值的方式
    String s3= "abc";
    String s4 ="abc";
    System.out.println(s3==s4);

    //比较字符串对象地址是否相同
    System.out.println(s1==s3);
    }  
}

在这里插入图片描述

2.4 String比较

使用==做比较

  • 基本类型:比较的是数据值是否相同
  • 引用类型:比较的是地址值是否相同

字符串是对象,它比较内容是否相同,是通过一个方法来是实现的,这个方法叫:equals()

  • public boolean equals (Object an Object):将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数直接传递一个字符串。
public class StringDemo03 {
    public static void main(String[] args) {
        //构造方法的方式得到对象
        char[] chs = {'a','b','c'};
        String s1 = new String(chs);
        String s2 = new String(chs);

        //直接赋值的方式得到对象
        String s3 = "abc";
        String s4 = "abc";


        //比较字符串对象地址是否相同
        System.out.println(s1==s2);
        System.out.println(s1==s3);
        System.out.println(s3==s4);
        System.out.println("================");

        //比较字符串内容是否相同
        System.out.println(s1.equals(s2));
        System.out.println(s1.equals(s3));
        System.out.println(s3.equals(s4));
    }   
}

在这里插入图片描述

案例:用户登录

在这里插入图片描述

思路:

  1. 已知用户名和密码,定义两个字符串表示即可
  2. 键盘录入要登录的用户名和密码,用scanner实现
  3. 拿键盘录入的用户名、密码和已知的用户名、密码比较,给出相应的提示。字符串的内容比较,用equals方法实现
  4. 用循环实现多次机会,这里的次数明确,采用for循环实现,并登录成功的时候,使用break结束循环。
/**
 *  1. 已知用户名和密码,定义两个字符串表示即可
2. 键盘录入要登录的用户名和密码,用scanner实现
3. 拿键盘录入的用户名、密码和已知的用户名、密码比较,给出相应的提示。字符串的内容比较,用`equals`方法实现
4. 用循环实现多次机会,这里的次数明确,采用for循环实现,并登录成功的时候,使用break结束循环。


 */

import java.util.Scanner;

public class yongludenglu {
public static void main(String[] args) {
        //1. 已知用户名和密码,定义两个字符串表示即可
        String username = "001";
        String password = "123456";
        
        //用循环实现多次机会,这里的次数明确,采用for循环实现,并登录成功的时候,使用break结束循环。
        for(int i= 0;i<3;i++){
        
            //键盘录入要登录的用户名和密码,用scanner实现
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的用户名:");
        String name=sc.nextLine();
        System.out.println("请输入你的密码:");
        String pwd =sc.nextLine();
        
        // 拿键盘录入的用户名、密码和已知的用户名、密码比较,给出相应的提示。字符串的内容比较,用`equals`方法实现
        if(name.equals(username)&&pwd.equals(password)){
            System.out.println("登录成功!");
            break;
        }else{
            if(2-i==0){
                System.out.println("你的账户已被锁定,请与管理员联系!!");
            }else{
            System.out.println("登录失败!,你还有"+(2-i)+"次机会");
            }
        }
    }
}   
}

案例:遍历字符串

需求:键盘录入一个字符串,使用程序实现在控制台遍历该字符串

思路:

  1. 键盘录入一个字符串,用Scanner实现

  2. 遍历字符串,首先要能够获取到字符串中的每一个字符

    • public char charAt(int index):返回指定索引处的char值,字符串索引也是从0开始的
  3. 遍历字符串,其次要能够获取到字符串的长度

    • public int length():返回次字符串的长度
    • 数组的长度:数组名.length
    • 字符串的长度:字符串对象.length()
  4. 遍历字符串的通用格式

    for(int i = 0;i<s.length();i++){
        s.charAt(i);//就是指定索引处的字符值
    }
    
import java.util.Scanner;

//遍历字符串
public class bianlizifuchuan {
    public static void main(String[] args) {
        //键盘录入一个字符串,用Scanner实现
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String line = sc.nextLine();


        //遍历字符串,首先要能够获取到字符串中的每一个字符
        for(int i =0;i<line.length();i++){
            System.out.println(line.charAt(i));
        }
    }
}

案例:统计字符次数

需求:

​ 键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)

思路:

  1. 键盘录入一个字符串,用scanner实现
  2. 要统计三种类型的字符个数,需定义三个统计变量,初始值都为零
  3. 遍历字符串,得到每一个字符
  4. 判断该字符属于哪种类型,然后对应类型的统计变量加1
    • 假如ch是一个字符,我要判断它属于大写字母、小写字母、还是数字,直接判断该字符是否在对应的范围即可
    • 大写字符:ch>=‘A’&&ch<=‘Z’
    • 小写字符:ch>=‘a’&&ch<=‘z’
    • 数字:ch>=‘0’&&ch<=‘9’
  5. 输出三种类型的字符个数
import java.util.Scanner;

/**
 * 统计字符次数
 */
public class tongjizifucishu {
    public static void main(String[] args) {
        //键盘录入一个字符串,用scanner实现
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要统计字符的字符串:");
        String line =sc.nextLine();
        
        //要统计三种类型的字符个数,需定义三个统计变量,初始值都为零
        int dx =0;
        int xx =0;
        int sz =0;
        //遍历字符串,得到每一个字符
        for(int i =0;i<line.length();i++){
            char ch = line.charAt(i);
            if(ch>='A'&&ch<='Z'){
                dx++;
            }else if(ch>='a'&&ch<='z'){
                xx++;
            }else if(ch>='0'&&ch<='9'){
                sz++;
            }
        }
        System.out.println("大写字符有:"+dx+"个,"+"小写字符有:"+xx+"个,"+"数字字符有:"+sz+"个");
    }  
}

案例:拼接字符串

在这里插入图片描述

思路:

  1. 定义一个int类型的数组,用静态初始化完成数组元素的初始化
  2. 定义一个方法,用于把int数组中的数据按照指定格式进行拼接澄一个字符串返回。返回类型String,参数列表int[]arr
  3. 在方法中遍历数组,按照要求进行拼接
  4. 调用方法,用一个变量接收结果
  5. 输出结果
//拼接字符串
public class pinjiezifuchuan {
    public static void main(String[] args) {
        //定义一个int类型的数组,用静态初始化完成数组元素的初始化
        int[] arr = {1,2,3};

        //调用方法
        String s=arrayToString(arr);
        
        //输出结果
        System.out.println("s:"+s);

    }

    /**
     * 定义一个方法,用于把int数组中的数据按照指定格式进行拼接澄一个字符串返回。返回类型String,参数列表int[]arr
     */

     public static String arrayToString(int[] arr){
         //在方法中遍历数组,按照要求进行拼接
         String s = "";

         s+="[";

         for(int i = 0; i<arr.length;i++){
             if(i==arr.length-1){
                 s+=arr[i];
             }else{
                 s+=arr[i];
                 s+=",";
             }
         }

         s+="]";
         return s;
     }
}

案例:字符串反转

需求:
定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果例如,键盘录入abc,输出结果cba

思路:
1 :键盘录入一个字符串,用Scanner实现
2:定义一个方法,实现字符串反转。返回值类型string,参数string s
3:在方法中把字符串倒着遍历,然后把每一个得到的字符拼接成一个字符串并返回
4:调用方法,用一个变量接收结果
5:输出结果

import java.util.Scanner;

//字符串反转
public class zifuchuanfanzhuan {
    public static void main(String[] args) {
        //键盘录入一个字符串,用Scanner实现
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要反转的字符串:");
        String line =sc.nextLine();

        //调用方法,用一个变量接收结果
        String s = reverse(line);

        //输出结果
        System.out.println("反转后的字符串:"+s);
    }
    //定义一个方法,实现字符串反转。返回值类型string,参数string s
    /**
     * 两个明确
     *  返回类型:String 
     *  参数;String s
     * @param arr
     * @return
     */
public static String reverse(String s){
    //在方法中把字符串倒着遍历,然后把每一个得到的字符拼接成一个字符串并返回
    String ss="";

    for(int i = s.length()-1;i>=0;i--){
        ss+=s.charAt(i);
        }

    return ss;
	}
}

2.5 通过帮助文档查看String中的方法

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二毛就不是钱吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值