栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

黑马程序员全套Java教程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

黑马程序员全套Java教程

黑马程序员全套Java教程_Java基础教程_API(十四)
  • 1、API
    • 1.1 API概述
    • 1.2 如何使用帮助文档
  • 2、String
    • 2.1 String
    • 2.2 String构造方法
    • 2.3 String对象的特点
    • 2.4 字符串的比较
    • 2.5 面试题——统计字符次数
    • 2.6 通过帮助文档查看String中的方法
  • 3、StringBuilder
    • 3.1 StringBulider概述
    • 3.2 StringBuilder构造方法
    • 3.3 StringBuilder的添加和反转方法
    • 3.4 StringBuilder和String互相转换
    • 案例:拼接字符串
    • 案例:字符串反转
    • 3.5 通过帮助文档查看StringBuilder中的方法

1、API 1.1 API概述
  • API(Application Programming Interface):应用程序编程接口。
  • 比如说,编写一个机器人程序去控制机器人踢足球,程序需要向机器人发出向前跑、向后跑、射门、抢球等各种命令。机器人厂商一定会提供一些用于控制机器人的接口类,这些类中定义好了操作机器人各种动作的方法。其实,这些接口类就是机器人厂商给应用程序编程的接口,大家把这些类称为API。
  • Java API:指的就是JDK中提供的各种功能的Java类。这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用,我们可以通过帮助文档来学习这些API如何使用。
1.2 如何使用帮助文档
  • 1、在索引的搜索框内输入想要查找的类。
  • 2、看类在哪个包下。
  • 3、看类的描述。
  • 4、看构造方法
  • 5、看成员方法。
2、String 2.1 String
  • String类在java.lang包下,所以使用的时候不需要导包。
  • String类代表字符串Java程序中的所有字符串文字(例如“abc”)都被实现为此类的实例,也就是说,Java程序中所有的双引号字符串,都是String类的对象
  • 字符串的特点:
    (1)字符串不可变,它们的值在创建后不能被修改。
    (2)虽然Sting的值是不可变的,但是它们可以被共享。
    (3)字符串效果上相当于字符数组(char[])(JDK8以前是字符数组,JDK9以后是字节数组),但是底层原理是字节数组(byte[])。
2.2 String构造方法
方法名说明
public String()创建一个空白字符串对象,不含有任何内容
public String(char[] chs)根据字符数组的内容,创建字符串对象
public String(byte[] bys)根据字节数组的内容,来创建字符串对象
String s = “abc”;直接赋值的方式创建字符串对象,内容就是abc

推荐使用直接赋值的方式构建字符串对象

2.3 String对象的特点
  • 1、通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同。
char[] chs = {"a","b","c"};
String s1 = new String(chs);
String s2 = new String(chs);

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

  • 2、以""方式给出的字符串,只要字符串序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护。
String s3 = "abc";
String s4 = "abc";

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

  • 在内存中的变化:

2.4 字符串的比较
  • 使用“==”做比较:
    (1)基本类型:比较的是数据值是否相同。
    (2)引用类型:比较的是地址值是否相同。
  • 字符串是对象,它比较内容是否相同,是通过==equals()==方法来实现的:这个方法的声明为public boolean equals(Object anObject),将字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数直接传递一个字符串。
2.5 面试题——统计字符次数
  • 键盘录入一个字符串,统计该字符串中大写字母字符、小写字母字符、数字字符出现的次数(不考虑其他字符)。
public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入字符串:");
        String line = sc.nextLine();

        
        int bigCount = 0;
        int smallCount = 0;
        int numberCount = 0;

        
        for (int i=0; i='a' && ch<='z'){
                smallCount++;
            }else if(ch>='A' && ch<='Z'){
                bigCount++;
            }else if(ch>='0' && ch<='9'){
                numberCount++;
            }
        }

        
        System.out.println(smallCount);
        System.out.println(bigCount);
        System.out.println(numberCount);
    }
2.6 通过帮助文档查看String中的方法
方法名说明
public boolean equals(Object anObject)比较字符串的内容,严格区分大小写(用户名和密码)
public char charAt(int index)返回值指定索引
public int length()返回字符串长度
3、StringBuilder 3.1 StringBulider概述


如上图,如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费内存空间,而这种操作还不可避免。那么有没有一种比较好的方式可以解决这个问题?答案是肯定的,我们可以通过Java提供的StringBuilder类来解决这个问题。

  • StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器。这里的可变指的是StringBuilder对象中内容是可变的。
  • String和StringBuilder的区别:String内容是不可变的,StringBuilder内容是可变的。
3.2 StringBuilder构造方法
方法名说明
public StringBulider()创建一个空白可变字符串对象,不含有任何内容
public StringBulider(str)根据字符串的内容,来创建可变字符串对象
3.3 StringBuilder的添加和反转方法
方法名说明
public StringBuilder append(任意类型)添加数据,并返回对象本身
public StringBuilder reverse()返回相反的字符序列
3.4 StringBuilder和String互相转换
  • 1、StringBuilder转换为String
    public String toString():通过toString()就可以实现把StringBuilder转换为String。
  • 2、String转换为StringBuilder
    public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder。
案例:拼接字符串
  • 需求:定义一个方法,把int数组中的数据按照指定的格式拼接成字符串返回,调用该方法,并在控制台输出结果。例如,数组int[] arr = {1,2,3},执行方法后的输出结果为:[1,2,3]
    public static void main(String[] args) {
        int[] arr = {1,2,3};
        System.out.println(con2(arr));

    }

    private static String con2(int[] arr){
        StringBuilder str = new StringBuilder();
        str.append("[");
        for (int i=0; i 
案例:字符串反转 
  • 案例:定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果。例如,键盘录入abc,输出结果cba。
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String str = sc.nextLine();
        System.out.println(myReverse(str));
    }

    private static String myReverse(String str){
        return new StringBuilder(str).reverse().toString();
    }
3.5 通过帮助文档查看StringBuilder中的方法
方法名说明
public StringBuilder append(任意类型)添加数据,并返回对象本身
public StringBuilder reverse()返回相反的字符序列
public String toString()通过toString()就可以实现把StringBuilder转换为String
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284659.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号