九、常用API(一)

本文介绍了Java API的基础知识,包括API概述、包的概念及使用,详细讲解了Scanner和Random类的构造方法与常用方法。接着深入探讨了Math和System类,特别是Math中的数学运算和System的毫秒计时功能。此外,文章还详细阐述了String类的特点、构造方法、字符串比较以及几个实例,如用户登录、遍历字符串等。最后,提到了StringBuilder类,用于提高字符串操作效率,举例说明了其在对称字符串和拼接字符串场景的应用。

一、API基础

1.1 API概述

  • API(Application Programming Interface):应用程序编程接口
  • Java API:指的就是JDK中提供的各种功能的Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类是如何使用即可,我们可以通过帮助文档来学习这些API如何使用

1.2 包概述

  • 包定义

    • 本质:本质上就是文件夹
    • 作用:对类进行分类管理
  • 包的定义格式

    • package 包名;
    • 注:包名一般是公司域名反写,并且多级包用.分开
  • 导包

    • 使用同一包下的类时,可以直接类名使用,不需要进行任何操作
    • 在使用不同包下的类时,有以下两种方式
      • 使用类的全路径,即包名+类名com.xu.Student stu1 = new com.xu.Student();
      • 使用import关键字导包来简化 import com.xu.Student;,导入后就可以直接使用Student stu1 = new Student();。可光标停留后使用快捷键Alt + Enter快捷键进行导包

1.3 Scanner类

如何使用帮助文档查看Scanner类

  1. 右键打开该文档

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

在这里插入图片描述

  1. 在输入框中输入要学习的类名(例Scanner)

在这里插入图片描述

  1. 看类在那个包下

在这里插入图片描述

  1. 看类的描述

在这里插入图片描述

  1. 看构造方法

在这里插入图片描述

  1. 看成员方法(返回值类型、参数、方法介绍)

在这里插入图片描述

简单查看后总结:

  • Scanner是一个简单的文本扫描程序,可以使用正则表达式解析基本类型和字符串
  • 主要使用的构造方法
    • Scanner(InputStream source):创建Scanner对象
    • System.in:对应的是InputStream类型,可以表示键盘输入
    • 完整示例Scanner sc = new Scanner(System.in);
  • 成员方法:
    • int nextInt():获取一个int类型的数据
      • 例:int i = sc.nextInt
    • 其余同理
public class ScannerDemo {
    public static void main(String[] args) {
        // Scanner(InputStream source):创建Scanner对象
        Scanner sc = new Scanner(System.in);

        // int nextInt():获取一个int类型的数据
        System.out.print("请输入一个整数:");
        int i = sc.nextInt();

        // 输出获取的数据
        System.out.println("输入的数为:" + i);

    }
}

1.4 Random类

  • Random类的实例用于生成伪随机数流
  • 主要使用的构造方法
    • Random():创建一个新的随机数生成器
    • System.in:对应的是InputStream类型,可以表示键盘输入
    • 完整示例Scanner sc = new Scanner(System.in);
  • 成员方法:
    • int nextInt(int bound):获取一个int类型的随机数,参数bound表示获取到的随机数在[0,bound)之间
public class ScannerDemo {
    public static void main(String[] args) {
        // Scanner(InputStream source):创建Scanner对象
        Scanner sc = new Scanner(System.in);

        // int nextInt():获取一个int类型的数据
        System.out.print("请输入一个整数:");
        int i = sc.nextInt();

        // 输出获取的数据
        System.out.println("输入的数为:" + i);

    }
}

二、Math & System

2.1 Math

  • Math类概述

    • Math 包含执行基本数字运算的方法
  • Math中方法的调用方式(类名.的方式)

    • Math类中无构造方法,但内部的方法都是静态的,则可以通过 类名.进行调用
  • Math类的常用方法

    方法名 方法名说明
    public static int abs(int a)返回参数的绝对值
    public static double ceil(double a)返回大于或等于参数的最小double值,等于一个整数
    public static double floor(double a)返回小于或等于参数的最大double值,等于一个整数
    public static int round(float a)按照四舍五入返回最接近参数的int
    public static int max(int a,int b)返回两个int值中的较大值
    public static int min(int a,int b)返回两个int值中的较小值
    public static double pow (double a,double b)返回a的b次幂的值
    public static double random()返回值为double的正值,[0.0,1.0)
public class Demo01 {
    public static void main(String[] args) {
        // public static int abs(int a)  返回参数的绝对值
        int abs = Math.abs(-10);
        System.out.println(abs);
        System.out.println("=============");

        // public static double ceil(double a)  返回大于或等于参数的最小double值,等于一个整数
        double ceil = Math.ceil(4.1);
        System.out.println(ceil);
        System.out.println("=============");

        //  public static double floor(double a)  返回小于或等于参数的最大double值,等于一个整数
        double floor = Math.floor(4.9);
        System.out.println(ceil);
        System.out.println("=============");

        //  public static int round(float a)   按照四舍五入返回最接近参数的int
        int round = Math.round(4.5F);  // 如果用double类型作为参数,则必须用long类型接收
        System.out.println(round);
        System.out.println("=============");

        //  public static int   max(int a,int b) 返回两个int值中的较大值
        int max = Math.max(4, 5);
        System.out.println(max);
        System.out.println("=============");

        //  public static int min(int a,int b)  返回两个int值中的较小值
        int min = Math.min(4, 5);
        System.out.println(min);
        System.out.println("=============");
        //  public static double pow (double a,double b) 返回a的b次幂的值
        double pow = Math.pow(2, 4);
        System.out.println(pow);
        System.out.println("=============");

        //  public static double random()  返回值为double的正值,[0.0,1.0)
        double random = Math.random() + 100;
        System.out.println(random);
    }
}

2.2 System

  • System类的常用方法

    方法名说明
    public static void exit(int status)终止当前运行的 Java 虚拟机,非零表示异常终止
    public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
    public static arraycopy(Object src, int srcPos, Object dest, int destPos, int length)将指定源数组中的数组从指定位置开始复制到目标数组的指定位置。
  • 示例代码

    • 需求:在控制台输出1-10000,计算这段代码执行了多少毫秒
public class Demo02 {
    public static void main(String[] args) {
        // 获取开始的时间节点
        long start = System.currentTimeMillis();
        for (int i = 1; i <= 10000; i++) {
            System.out.println(i);
        }
        // 获取代码运行结束后的时间节点
        long end = System.currentTimeMillis();
        System.out.println("共耗时:" + (end - start) + "毫秒");

        // 数组拷贝
        int[] arr1 = {1, 2, 3, 4, 5};
        int[] arr2 = new int[6];
        // 从arr1的0号索引处拷贝所有数组元素到arr2的1号索引处
        System.arraycopy(arr1, 0, arr2, 1, arr1.length);
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }
    }
}

2.3 BigDecimal

  • 作用:可以用来进行精确计算

  • 构造方法

    方法名说明
    BigDecimal(double val)参数为double
    BigDecimal(String val)参数为String
  • 常用方法

    方法名说明
    public BigDecimal add(另一个BigDecimal对象)加法
    public BigDecimal subtract (另一个BigDecimal对象)减法
    public BigDecimal multiply (另一个BigDecimal对象)乘法
    public BigDecimal divide (另一个BigDecimal对象)除法
    public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式)除法
  • 总结

    1. BigDecimal是用来进行精确计算的
    2. 创建BigDecimal的对象,构造方法使用参数类型为字符串的。
    3. 四则运算中的除法,如果除不尽请使用divide的三个参数的方法。
package com.xu.Test;

import java.math.BigDecimal;

public class Demo03 {
    /*
        BigDecimal divide = bd1.divide(参与运算的对象,小数点后精确到多少位,舍入模式);
        参数1 ,表示参与运算的BigDecimal 对象。
        参数2 ,表示小数点后面精确到多少位
        参数3 ,舍入模式
          BigDecimal.ROUND_UP  进一法
          BigDecimal.ROUND_FLOOR 去尾法
          BigDecimal.ROUND_HALF_UP 四舍五入
     */
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal(10.0);
        BigDecimal bd2 = new BigDecimal(3.0);

        /*BigDecimal divide = bd1.divide(bd2);  // 会报错,非终止十进制精确表示
        System.out.println(divide);  */
        BigDecimal divide = bd1.divide(bd2, 3, BigDecimal.ROUND_UP);
        System.out.println(divide);


    }
}

三、String类

3.1 String类概述和构造方法

  • String概述和特点

    • String类代表字符串。Java程序中的所有字符串文字(例如"abc")都被实现为此类的实例。

      • 也就是说,Java程序中所有的双引号字符串,都是String类的对象
    • String类在java.lang包下,所以使用的时候不需要导包

    • 字符串不可变,它们的值在创建后不能被更改,但是它们可以共享(字符串常量池)

  • String类常见的构造方法

    • public String():创建一个空白字符串对象,不含有任何内容
    • public String(char[] chs):根据字符数组的内容,来创建字符串对象
    • public String(String original):根据传入的字符串内容,来创建字符串对象
    • String s = "abc":直接赋值的方式创建字符串对象,内容就是abc

注:String这个类比较特殊,打印其对象名的时候,不会出现内存地址,而是该对象所记录的真是内容(后续课程详解)

  • 示例
public class StringDemo01 {
    public static void main(String[] args) {
        // public String():创建一个空白字符串对象,不含有任何内容
        String s1 = new String();
        System.out.println(s1);  // 空串
        System.out.println(s1.length());  // 0
        // String这个类比较特殊,打印其对象名的时候,不会出现内存地址,而是该对象所记录的真是内容
        
        // public String(char[] chs):根据字符数组的内容,来创建字符串对象
        char[] c1 = {'a', 'b', 'c'};
        String s2 = new String(c1);
        System.out.println(s2);

        // public String(String original):根据传入的字符串内容,来创建字符串对象
        String s3 = new String("abc");
        System.out.println(s3);

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

    }
}

3.2 创建字符串对象的区别对比

  • 问题:构造方法能创建对象,双引号也能创建字符串对象,有什么区别吗?
3.2.1 以""方式给出的字符串
  • ""方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串常量池中维护

  • 字符串常量池:当使用双引号创建字符串对象的时候,系统会检查该字符串是否在字符串常量池中存在

    • 不存在:创建
    • 存在:不会重新创建,而是直接复用
  • 内存图

在这里插入图片描述

注:

  • JDK7版本开始,字符串常量池从方法区挪到了堆内存
  • ==号用做比较时
    • 基本数据类型:比较的是具体的值
    • 引用数据类型:比较的是地址值
3.2.2 以new创建的字符串对象
  • 通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同
  • 内存图

在这里插入图片描述

结论:

  • 双引号创建的字符串对象,在字符串常量池中存储
  • 通过构造方法创建的字符串对象,在堆内存中存储
3.2.3 两个特例
  • 变量和常量的拼接
public class Test3 {
    public static void main(String[] args) {
        // 字符串变量与常量的拼接
        String s1 = "abc";
        String s2 = "ab";
        String s3 = s2 + "c";
        // 底层会创建StringBuilder对象调用append方法后强转为String
        System.out.println(s1 == s3);  // false

    }
}

注:当字符串之间使用+号串联(拼接)的时候,系统底层会自动创建一个StringBuilder对象,然后再调用其append方法完成拼接。拼接后,再调用其toString方法转换为String类型

  • 内存图

在这里插入图片描述

  • 常量的拼接
public class Test2 {
    public static void main(String[] args) {
        // 字符串常量的拼接
        String s1 = "abc";
        String s2 = "a" + "b" + "c";

        System.out.println(s1 == s2);  // true
    }
}

注:Java存在常量优化机制,在编译的时候,就会将"a" + “b” + “c” 拼接成"abc"

3.3 字符串的比较

  • 当使用==比较引用类型时比较的是地址值是否相同,那如何比较字符串的值?
  • 字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫equals()
  • public boolean equals(Object anObject):将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数之间传递一个字符串
  • equalsIgnoreCase():比较时忽略大小写
public class EqualsDemo {
    public static void main(String[] args) {
        String s1 = "abcd";
        String s2 = "abcd";
        String s3 = "Abcd";

        // public boolean equals(Object anObject):将此字符串与指定对象进行比较
        System.out.println(s1.equals(s2));  // true
        System.out.println(s1.equals(s3));  //false
        // equalsIgnoreCase():比较时忽略大小写
        System.out.println(s1.equalsIgnoreCase(s3));  // true
    }
}

3.4 案例六则

3.4.1 用户登录

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

  • 使用的成员方法:
    • String trim():返回一个字符串,其值为此字符串,删除了所有前导空格和尾随空格
public class StringDemo02 {
    public static void main(String[] args) {
        // 使用变量存储用户名和密码
        String username = "admin";
        String userpassword = "123456";
        Scanner sc = new Scanner(System.in);

        // 三次机会登录
        for (int i = 1; i <= 3; i++) {
            System.out.print("请输入用户名:");
            String scUsername = sc.nextLine();
            System.out.print("请输入密码:");
            String scUserpassword = sc.nextLine();
            // 去除两边空格后判断
            if (username.equals(scUsername.trim()) && userpassword.equals(scUserpassword.trim())) {
                System.out.println("登录成功");
                break;
            } else {
                if (i == 3) {
                    System.out.println("达到失败次数上限,请明天再来");
                } else {
                    System.out.println("用户名或密码错误,还剩" + (3 - i) + "次机会");
                }
            }

        }
    }
}

3.4.2 遍历字符串

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

  • 使用的成员方法:

    • public char charAt(int index):返回指定索引处的char值,字符串的索引也是从0开始的

    • public int length():返回此字符串的长度

  • 法一:

public class StringDemo03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入:");
        String s1 = sc.nextLine();
        // 循环遍历整个字符串长度的次数,获取下标对应的值
        for (int i = 0; i < s1.length(); i++) {
            // public char charAt(int index):返回指定索引处的char值,字符串的索引也是从0开始的
            char c1 = s1.charAt(i);
            System.out.print(c1 + " ");
        }

    }
}
  • 将字符串拆分为字符数组
    • public char[] toCharArray():将当前字符串拆分为字符数组并返回
import java.util.Scanner;

public class StringDemo04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入:");
        String s1 = sc.nextLine();
        // public char[] toCharArray():将当前字符串拆分为字符数组并返回
        char[] c1 = s1.toCharArray();
        for (int i = 0; i < c1.length; i++) {
            System.out.print(c1[i] + " ");
        }
    }
}

3.4.3 统计字符次数

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

提醒:判断一个字符是属于大写字母、小写字母还是数字,直接判断该字符是否在对应的范围即可

  • 大写字母:ch >= “A” && ch <= “Z”
  • 小写字母:ch >= “a” && ch <= “z”
  • 数字:ch >= “0” && ch <= “9”
import java.util.Scanner;

public class StringDemo05 {
    public static void main(String[] args) {
        // 定义三个变量用于计数
        int bigCount = 0;
        int smallCount = 0;
        int numCount = 0;
        
        // 输入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入:");
        String s1 = sc.nextLine();
        
        // 转换成字符数组方便取出
        char[] c1 = s1.toCharArray();
        
        // 遍历判断并计数
        for (int i = 0; i < c1.length; i++) {
            if (c1[i] >= 'A' && c1[i] <= 'Z') {
                bigCount++;
            } else if (c1[i] >= 'a' && c1[i] <= 'z') {
                smallCount++;
            } else if (c1[i] >= '0' && c1[i] <= '9') {
                numCount++;
            }
        }

        //输出三种计数
        System.out.println("大写字母的数量为" + bigCount);
        System.out.println("小写字母的数量为" + smallCount);
        System.out.println("数字的数量为" + numCount);
        
    }
}

3.4.4 手机号屏蔽

需求:以字符串的形式从键盘接受一个手机号,将中间的四位号码屏蔽

例如156****1234,即截取前3位和后四位,拼接4个*

  • 使用的成员方法:
    • String substring(int beginIndex):从传入的索引位置处,向后截取,一直截取到末尾,得到新的字符串返回
    • String substring(int beginIndex, int endIndex):从beginIndex索引位置开始截取,截取到endIndex索引位置,得到新字符串并返回(包含头,不包含尾)
import java.util.Scanner;

public class StringDemo06 {
    public static void main(String[] args) {
        // 接收键盘录入号码
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入11位电话号码:");
        String s1 = sc.nextLine();

        // 取字符串的前三位和后四位
        // String substring(int beginIndex, int endIndex):从beginIndex索引位置开始截取,截取到endIndex索引位置,得到新字符串并返回(包含头,不包含尾)
        String substring1 = s1.substring(0, 3);
        // String substring(int beginIndex):从传入的索引位置处,向后截取,一直截取到末尾,得到新的字符串返回
        String substring2 = s1.substring(7);

        // 输出加密后的字符串
        System.out.println(substring1 + "****" + substring2);

    }
}

3.4.5 敏感词替换

需求:键盘录入一个字符串,如果字符串中包含(TMD),则使用***替换

  • 使用的成员方法:
    • String replace(CharSequence target, CharSequence replacement):将当前字符串中的target(被替换的旧值)内容,使用replacement(替换的新值)进行替换返回新的字符串
import java.util.Scanner;

public class StringDemo07 {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       System.out.println("请输入:");
       String s1 = sc.nextLine();
       
       // 用replace(target, replacement)方法替换里面的敏感词
       String result = s1.replace("TMD", "***");
       System.out.println(result);
   }
}

3.4.6 切割字符串

需求:以字符串的形式从键盘录入学生信息,例如:“张三,23”,从该字符串中切割出有效数据,封装为Student学生对象

  • 使用的成员方法:
    • String[] split(String regex):根据传入的字符串作为规则进行切割,将切割后的内容存入字符串数组中,并将字符串数组返回

注:一般封装数据的类都会新建一个domain包进行管理

import com.xu.domain.Student;

import java.util.Scanner;

public class Demo08 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生信息:");
        String s1 = sc.nextLine();
        
        // 用split(regex)方法分隔
        String[] sArray = s1.split(",");
        
        // 用sArray来初始化之前准备好的Student类
        Student stu = new Student(sArray[0], sArray[1]);
        System.out.println(stu.getAge());
        System.out.println(stu.getName());

    }
}

3.5 String方法小结

方法名说明
boolean equals(Object anObject)将此字符串与指定对象进行比较
boolean equalsIgnoreCase(Object anObject)将此字符串与指定对象进行比较,忽略大小写
String trim()返回一个字符串,其值为此字符串,删除了所有前导空格和尾随空格
char charAt(int index)返回指定索引处的char值,字符串的索引也是从0开始的
int length()返回此字符串的长度
char[] toCharArray()将当前字符串拆分为字符数组并返回
String substring(int beginIndex)从传入的索引位置处,向后截取,一直截取到末尾,得到新的字符串返回
String substring(int beginIndex, int endIndex)从beginIndex索引位置开始截取,截取到endIndex索引位置,得到新字符串并返回(包含头,不包含尾)
String replace(CharSequence target, CharSequence replacement)将当前字符串中的target(被替换的旧值)内容,使用replacement(替换的新值)进行替换,返回新的字符串
String[] split(String regex)根据传入的字符串作为规则进行切割,将切割后的内容存入字符串数组中,并将字符串数组返回

四、StringBuilder类

4.1 StringBuilder概述

  • StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器
  • 作用:提高字符串的操作效率

注:System.currentTimeMillis():用于获取1970年1月1日0时0分0秒到现在经历过的毫秒值

package com.xu.string;

public class StringBuilderDemo01 {
    public static void main(String[] args) {
        stringBuilderTestTime();
        // StringBuilder拼接50000次花费的时间为(ms):5
        stringTestTime();
        // String拼接50000次花费的时间为(ms):1210

    }

    public static void stringTestTime() {
        long start = System.currentTimeMillis();
        String s1 = "";
        for (int i = 0; i < 50000; i++) {
            s1 = s1 + i;
        }
        long end = System.currentTimeMillis();
        System.out.println("String拼接50000次花费的时间为(ms):" + (end - start));
    }

    public static void stringBuilderTestTime() {
        long start = System.currentTimeMillis();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 50000; i++) {
            sb.append(i);
        }
        long end = System.currentTimeMillis();
        System.out.println("StringBuilder拼接50000次花费的时间为(ms):" + (end - start));
    }
}

4.2 StringBuilder的方法

  • 构造方法

    • public StringBuilder():创建一个空白可变字符串对象,不含有任何内容
    • public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
  • 成员方法

    方法名说明
    StringBuilder append()添加数据并返回对象本身
    StringBuilder reverse()返回相反的字符串序列
    int length()返回长度(字符出现的个数)
    String toString()通过toString()就可以实现把StringBuilder转换为String
    • append方法的返回值就是对象自己的地址(可接收用==判断是否同一内存地址);
    • 链式编程:如果一个方法返回的是对象类型,对象就可以继续向下调用方法

4.3 StringBuilder提高效率原理图

  • 在使用String拼接时,一个加号就会创建两个对象(StringBuilder对象和String对象)

在这里插入图片描述

  • StringBuilder拼接时,堆内存只会有一个对象

在这里插入图片描述

区别:String内容是不可变的,StringBuilder内容是可变的

4.4 案例两则

4.4.1 对称字符串

键盘接受一个字符串,程序判断出该字符串是否是对称字符串,并在控制台打印是或不是

例:对称字符串:123321、111; 非对称字符串:123123

import java.util.Scanner;

public class StringBuilderDemo02 {
    public static void main(String[] args) {
        // 接收键盘输入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String s1 = sc.nextLine();

        // 用可变字符串的反转方法
        StringBuilder sb = new StringBuilder(s1);
        // System.out.println(sb);
        sb.reverse();
        // System.out.println(sb == sb.reverse());
        // System.out.println(sb);  // reverse()函数会直接反转调用者,并返回反转后的地址,是同一地址

        // 将StringBuilder再转回String类型比较
        String reverseStr = sb.toString();

        if (s1.equals(reverseStr)) {
            System.out.println("是对称的");
        } else {
            System.out.println("不是对称的");
        }
    }
}

总结☆

  • StringBuilder转化为String可通过toString()方法
  • String转化为StringBuilder可通过StringBuilder的构造方法StringBuilder(String s)实现
4.4.2 拼接字符串

需求:定义一个方法,把Int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果

例如:数组int[] arr = {1, 2, 3};执行方法后的输出结果为[1, 2, 3]

public class StringBuilderDemo03 {
    public static String printArray(int[] arr) {
        // 先用StringBuilder初始化一个左括号
        StringBuilder sb = new StringBuilder("[");
        // 遍历数组取元素
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {  // 如果是最后一个元素,则添加的同时增加右括号
                sb.append(arr[i]).append("]");
            } else {  // 如果不是最后一个元素,则添加的同时增加逗号空格
                sb.append(arr[i]).append(", ");
            }

        }
        return sb.toString();
    }

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 89, 85};
        System.out.println(printArray(arr));

    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值