Программисты 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 для подсчета времени выполнения программы:
Выходной результат: