JAVA常用工具类总结

java中的Strings类使用详解:

1.repeat

2.isNullOrEmpty

3.surround

4.join

public final class Strings {
    public static final String EMPTY = "";
    public static final String LINE_SEPARATOR = System.getProperty("line.separator");

    private Strings() {
        throw new UnsupportedOperationException();
    }

    // 在字符串第几位加一个字符
    public static String repeat(char ch, int count) {
        StringBuilder buffer = new StringBuilder();

        for(int i = 0; i < count; ++i) {
            buffer.append(ch);
        }

        return buffer.toString();
    }

    // 判断字符串是否为空
    public static boolean isNullOrEmpty(String target) {
        return target == null || target.isEmpty();
    }

   // 三个字符串连接到一起
   public static String surround(String target, char begin, char end) {
        return begin + target + end;
    }

   // 把数组和字符串合并
    public static String join(String[] pieces, String separator) {
        return join((Iterable)Arrays.asList(pieces), separator);
    }

    // 字符串合并
    public static String join(Iterable<String> pieces, String separator) {
        StringBuilder buffer = new StringBuilder();
        Iterator iter = pieces.iterator();

        while(iter.hasNext()) {
            buffer.append((String)iter.next());
            if(iter.hasNext()) {
                buffer.append(separator);
            }
        }

        return buffer.toString();
    }

Java中的Arrays类使用详解

首先先创建一个打印数组的方法,方便后面直接使用

public static void output(int []a) {
        for(int i=0;i<a.length;i++) {
            System.out.printf(a[i]+" ");
        }
        System.out.println();
}
1、填充数组:fill
eg1.
int []arr = new int[5];
Arrays.fill(arr, 2);
output(arr);
结果是:2 2 2 2 2

分析:给所有值赋值2

eg2.
int []arr = new int[5];
Arrays.fill(arr, 1,3,8);
output(arr);
结果是:0 8 8 0 0

分析:给第1位(0开始)到第3位(不包括)赋值8

 

2、数组元素排序:sort
eg1.
int []arr = {3,2,1,5,4};
Arrays.sort(arr);
output(arr);
结果是:1 2 3 4 5

分析:给所有数按升序排序

eg2.
int []arr = {3,2,1,5,4};
Arrays.sort(arr,1,3);
output(arr);
结果是:3 1 2 5 4

分析:给第1位(0开始)到第3位(不包括)排序

 

3、比较数组元素是否相等:equals
int []arr1 = {1,2,3};
int []arr2 = {1,2,3};
System.out.println(Arrays.equals(arr1,arr2));
结果是:true

分析:如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是否相等。

这里补充一下,如果还是不用Arrays.equals,那么我们应该如何重写equals来比较两个数组的元素是否相等呢?这里提供一段代码

//Compare the contents of two int arrays
    public static boolean isEquals(int[] a, int[] b)
    {
        if( a == null || b == null )
        {
            return false;
        }
        if(a.length != b.length)
        {
            return false;
        }
        for(int i = 0; i < a.length; ++i )
        {
            if(a[i] != b[i])
            {
                return false;
            }
        }
        return true;
    }
 

4、二分查找法找指定元素的索引值(下标):binarySearch
数组一定是排好序的,否则会出错。找到元素,只会返回最后一个位置

eg1:
int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 20));
结果是:1

分析:能找到该元素,返回下标为1(0开始)

eg2:
int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 35));
结果是:-4

分析:找不到元素,返回-x,从-1开始数,如题,返回-4

eg3:
int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 0,3,30));
结果是:2

分析:从0到3位(不包括)找30,找到了,在第2位,返回2

eg4:
int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 0,3,40));
结果是:-4

分析:从0到3位(不包括)找40,找不到,从-1开始数,返回-4

 

5、截取数组:copeOf和copeOfRange
eg1: copy
int []arr = {10,20,30,40,50};
int []arr1 = Arrays.copyOf(arr, 3);
output(arr1);
结果:10 20 30

分析:截取arr数组的3个元素赋值给姓数组arr1

eg2:  copyOfRange
int []arr = {10,20,30,40,50};
int []arr1 = Arrays.copyOfRange(arr,1,3);
output(arr1);
结果:20 30

分析:从第1位(0开始)截取到第3位(不包括)

 

6、其他
还有hashCode,toString,clone等这里就不介绍了,暂时用的少

Arrays的原文本地址:https://liuyanzhao.com/2863.html

猜你喜欢

转载自blog.csdn.net/zhenzhen823/article/details/81452795