java基础十二

数组工具类

java.util.Arrays类
  • 数组排序

    • static void sort(int\[\] a) :将a数组按照从小到大进行排序

    • static void sort(int\[\] a, int fromIndex, int toIndex) :将a数组的[fromIndex, toIndex)部分按照升序排列

    • static void sort(Object\[\] a) :根据元素的自然顺序对指定对象数组按升序进行排序。

    • static <T> void sort(T\[\] a, Comparator<? super T> c) :根据指定比较器产生的顺序对指定对象数组进行排序。

    复制代码
    //        sort  可以将数组从小到大排序 但是修改的是原数组
    //        Arrays.sort(numarr);
    //        sort(数组,从哪开始,到哪结束(不包含结束位置))  按照区域整理从小到大
    //        Arrays.sort(numarr,4,7);
    //        System.out.println(Arrays.toString(numarr));
  • 数组元素的二分查找

    • static int binarySearch(int\[\] a, int key)

    • static int binarySearch(Object\[\] a, Object key) :要求数组有序,在数组中查找key是否存在,如果存在返回第一次找到的下标,不存在返回负数

    复制代码
    通过二分查找法 来找到你要查的内容的第一次出现的位置
    //        System.out.println(Arrays.binarySearch(numarr,0));
  • 数组的复制

    • static int\[\] copyOf(int\[\] original, int newLength) :根据original原数组复制一个长度为newLength的新数组,并返回新数组

    • static <T> T\[\] copyOf(T\[\] original,int newLength):根据original原数组复制一个长度为newLength的新数组,并返回新数组

    • static int\[\] copyOfRange(int\[\] original, int from, int to) :复制original原数组的[from,to)构成新数组,并返回新数组

    • static <T> T\[\] copyOfRange(T\[\] original,int from,int to):复制original原数组的[from,to)构成新数组,并返回新数组

    复制代码
    数组复制  copyOf(原数组,复制的个数(原数组.length))//        int[] numarr1 = Arrays.copyOf(numarr,5);        int[] numarr1 = Arrays.copyOf(numarr,numarr.length);        System.out.println(Arrays.toString(numarr1));
    //        copyOfRange(原数组, 从谁开始, 到谁结束(不包含结束位置))  数组复制        int[] numarr2 = Arrays.copyOfRange(numarr,3,7);        System.out.println(Arrays.toString(numarr2));
  • 比较两数组是否相等

    • static boolean equals(int\[\] a, int\[\] a2) :比较两个数组的长度、元素是否完全相同

    • static boolean equals(Object\[\] a,Object\[\] a2):比较两个数组的长度、元素是否完全相同

    复制代码
    equals 比较是否相等
         System.out.println(Arrays.equals(numarr,numarr1));
  • 填充数组

    • static void fill(int\[\] a, int val) :用val值填充整个a数组

    • static void fill(Object\[\] a,Object val):用val对象填充整个a数组

    • static void fill(int\[\] a, int fromIndex, int toIndex, int val):将a数组[fromIndex,toIndex)部分填充为val值

    • static void fill(Object\[\] a, int fromIndex, int toIndex, Object val) :将a数组[fromIndex,toIndex)部分填充为val对象

复制代码
 Arrays.fill(numarr2,0);
        System.out.println(Arrays.toString(numarr2));

字符串

String:

String aa = "123";就相当于char\[\] aa = {'1','2','3'};

因为String类是一个final 所以理论来说是不可改变的,

是因为每次修改并不是直接改变原本的对象

而是新建一个对象

String是一个不可改变的对象

静态方法:
  • static String copyValueOf(char\[\] data): 返回指定数组中表示该字符序列的 String

  • static String copyValueOf(char\[\] data, int offset, int count):返回指定数组中表示该字符序列的 String

  • static String valueOf(char\[\] data) : 返回指定数组中表示该字符序列的 String

  • static String valueOf(char\[\] data, int offset, int count) : 返回指定数组中表示该字符序列的 String

  • static String valueOf(xx value):xx支持各种数据类型,返回各种数据类型的value参数的字符串表示形式。

常用的方法

cha'rAt():返回index位置的字符;字符串也有长度length和索引下标;

length:返回字符串长度

拼接:

concat()拼接等价于"+";判断是否相等;

比较:

==比较的是内存地址 不同对象一定是false;

equals:比较的是哈希值,String已经重写该方法;

equalsIgnore():通过equals比较不区分大小写

compareTo():如果相等且大小写相等,发回0 不相等则返回差值;

compareToIgnorecase:不区分大小写比较字符串大小;

isEmpty():判断字符串是否为空
转换大小写:

tolowercase():向下 大写转小写;

touppercase():向上 小写转大写;

trim():清楚字符前后空格;

查找

contains(xx):是否包含xx;

indexof():从前向后查找第一次出现的位置返回值是索引下标;

LastIndexof():从后向前查找第一次出现的位置返回索引下标;

截取:

substring:一个参数 从谁开始 直接到结尾;

两个参数 从谁开始 到谁结束 (不包含)

返回值是一个新的字符串;

开头 结尾:

startswith:判断是否以xx开头;

ends with:判断是否以xx为结尾;

编码与解码:

getBytes():编码把字符串转换为字节数组;

new String ():解码;

替换:

replace:两个参数 一个旧的 一个新的 把旧的参数换成新的参数;

拆分:

split():需要以一个字符串作为拆分点 且拆分点的字符不会被打印,返回的是地址值需要toString接收;

StringBuffer,StringBuilder:

append:在末尾位置追加新内容 在原本的字符串中追加 会改变原本的变量;

insert:在offset位置添加新内容;

delete:删除 开始 结束(不包含);

setcharAT:替换 每次只能替换一个;

reverse:反转字符串;

setlength:设置字符串长度也可以截取内容;

repl:替换;

indexof:查找第一次出现的位置

相关推荐
骄马之死5 小时前
SpringMVC + SpringBoot 核心知识点总结
java·spring boot·后端
Frostnova丶6 小时前
【算法笔记】数学知识
笔记·算法
吴可可1236 小时前
AutoCAD 2016与2014二次开发关键差异
算法
郑洁文7 小时前
基于Spring Boot的流浪动物救助网站
java·spring boot·后端·毕设·流浪动物救助
雨白7 小时前
哈希:以时间换空间的算法实战
算法
螺丝钉code7 小时前
JAVA项目 Claude code CLAUDE.md 到底应该怎么写
java·人工智能·claude code
啦啦啦啦啦zzzz8 小时前
数据结构:红黑树理论
数据结构·c++·红黑树
摇滚侠9 小时前
Maven 入门+高深 单一架构案例 54-59
java·架构·maven·intellij-idea
VidDown9 小时前
Webhook 调试器:让第三方回调“原形毕露”
java·开发语言·javascript·编辑器·postman