Эти средства действительно «нюхают» в использовании

Java

Программисты Java-разработки, только что вошедшие в отрасль, во многих случаях могут самостоятельно реализовать некоторый код вручную.Это не значит, что это плохо.В определенной степени такой подход фактически является пустой тратой времени, и весьма вероятно, что некоторые будут возникать ошибки, но это нормально, и код, который я написал, когда впервые пришел в индустрию, такой же, но после того, как вы научитесь использовать готовые инструменты, это может сэкономить вам много времени.

Ниже я в основном делюсь этими инструментами:

1. Строка связана

Класс String должен быть тем, который мы используем чаще всего в обычном процессе разработки Java.Обычно нам часто нужно выполнять некоторую обработку вокруг String.Сам JDK также предоставляет нам множество API-интерфейсов String, но функции относительно просты. Обычно необходимо объединить несколько методов String для выполнения бизнес-функции.

Первое введение предоставлено ApacheStringUtilsИнструменты

Зависимости pom, которые необходимо ввести:

<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.10</version>
</dependency>

1. Определите, пуста ли строка

String str = "hello world";
if (null == str || str.isEmpty()) {
  //do something
}

Вышеупомянутая формулировка, конечно, мы должны были написать, код прост, но легко случайно вызвать исключение нулевого указателя

Используйте StringUtils, чтобы написать следующее:

if(StringUtils.isEmpty(str)){
//do something
}

По приведенному выше коду легче судить о том, что строка пуста, но следует отметить, что следующая ситуация

public class UtilsTest {
    public static void main(String[] args) {
        String str1 = "";
        String str2 = " ";
        System.out.println(StringUtils.isEmpty(str1));// false
        System.out.println(StringUtils.isEmpty(str2));// true
    }
}

2, фиксированная длина строки

String result = StringUtils.leftPad("test",8,"0");// 0000test

Приведенный выше метод leftPad указывает, что возвращаемая строка имеет фиксированную длину 8. Если ее недостаточно, добавьте 0 слева.

3. Замена ключевых слов

//替换所有关键字
StringUtils.replace("abc","a","A"); //Abc
//只替换一次关键字
StringUtils.replaceOnce("aba","a","A"); //Aba
//使用正则表达式替换
StringUtils.replacePattern("ABCabc123","[^A-Z0-9]+",""); //ABC123

4. Конкатенация строк

String[] array = new String[]{"abc","123","456"};
StringBuilder stringBuilder = new StringBuilder();
for(String s:array){
stringBuilder.append(s).append(";");
} 
System.out.println(stringBuilder.toString()); //abc;123;456

Класс StringUtils использует

String[] array = new String[]{"abc","123","456"};
StringUtils.join(array,";") //abc;123;456

5. Разделение строки

StringUtils.split("a.b.c",".") //["a","b","c"]

Во-вторых, соответствующая дата

DateUtils и DateFormatUtils

До JDK8 Java предоставлял только класс Date.Когда нам нужно преобразовать Date в строку в соответствии с определенным форматом, нам нужно использовать класс SimpleDateFormat в настоящее время.

1. Преобразование даты в строку в указанном формате

public class UtilsTest {
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 将Date类型按照指定的字符串格式进行转换
        String dateString=simpleDateFormat.format(date);
        System.out.println(dateString);
    }
}

Это кажется очень простым, но используемый здесь SimpleDateFormat не является потокобезопасным, что приводит к проблемам с потокобезопасностью в многопоточной среде, поэтому мы можем использовать класс инструмента времени DataUtils/DateFormateUtils под common-lang3, поэтому как решить проблему преобразования между датой и строкой.

Метод очень прост, преобразование приведенного выше кода эквивалентно следующему коду:

String dateString = DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss");
System.out.println(dateString);

2. Строка на сегодняшний день

Date date = DateUtils.parseDate("2020-10-15 22:00:00","yyyy-MM-dd HH:mm:ss");
System.out.println(date);

Выходной результат:

Thu Oct 15 22:00:00 CST 2020

3. Расчет времени DateUtils

В дополнение к приведенному выше преобразованию даты, DateUtils также предоставляет очень удобную функцию расчета времени.

Непосредственно в коде:

Выходной результат:

В-третьих, массив коллекций, связанный

1. Определить, пусто ли оно

судить раньше

List<String> list = new ArrayList<String>();
if(null==list||list.isEmpty()){
//do something
}

Вышеприведенное на самом деле не сложно написать, но также проще генерировать исключение нулевого указателя.Теперь мы можем использовать класс commons-collections, чтобы определить, является ли он пустым или нет.

пом зависимости:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

Используйте CollectionUtils/MapUtils/ArrayUtils для нулевой оценки

List<String> list = new ArrayList<String>();
Map map = new HashMap();
String[] strings = new String[];
map.put("name", "zxb");

// 判断列表集合为空
if (CollectionUtils.isEmpty(list)) {
  // do something
}
// 判断map为空
if (MapUtils.isEmpty(map)){
  //do something
}

//判断数组为空
if(ArrayUtils.isEmpty(strings)){
  //do someting 
}

Следует отметить, что ArrayUtils находится в пакете commons-lang3.

2. Быстро добавить массив в список

Перейдите непосредственно к коду:

вывод:

Другие методы не будут добавлены здесь. Вы можете использовать идею для игры с другими методами. На самом деле, класс Tools Guava Guava также имеет много классов повышения эксплуатации для коллекций. Вы можете искать соответствующую соответствующую информацию.

4. Время, связанное с

Прошлый раз:

long start = System.currentTimeMillis();
long end = System.currentTimeMillis();
System.out.println("运行时间:"+(end-start)+"ms");

Все, должно быть, использовали вышеуказанное. Это действительно просто, но это время очень негибкое. По умолчанию мы можем использовать только мс в качестве единицы измерения. Что, если нужны минуты? Тогда вам нужно еще одно вычисление для преобразования.Здесь я представлю класс инструмента синхронизации секундомера Guava для подсчета времени выполнения программы.

пом зависимости:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>19.0</version>
</dependency>

Используйте класс инструмента STOPCOTCH для подсчета времени выполнения программы:

Выходной результат: