Stringutils isblank in java

Класс StringUtils из Apache Commons

StringUtils — наиболее используемый класс Apache Commons. Он содержит различные утилиты и методы, которые помогают разработчикам избегать написания шаблонного или просто громоздкого кода для базовых операций.

Многие методы в классе StringUtils имеют свои эквиваленты в java.lang.String, но, в отличие от методов java.lang.String, являются безопасными для работы с null. Это означает, что исключение NullPointerException не выбрасывается в самый неожиданный момент.

Apache Commons содержит ряд методов, и мы рассмотрим некоторые из наиболее часто используемых.

Список методов StringUtils:

isEmpty() Проверяет, пустая ли строка
equals() Сравнивает строки
compare() Сравнивает строки
indexOf() Поиск подстроки в строке
lastIndexOf() Поиск подстроки в строке
contains() Проверяет вхождение подстроки в строку
containsIgnoreCase() Проверяет вхождение подстроки в строку, игнорируя регистр
containsAny() Проверяет вхождение подстроки в любом месте строки
containsNone() Проверяет, нет ли вхождения подстроки в любом месте строки
containsOnly() Проверяет вхождение подстроки в строку
substring() Получение подстроки
split() Разбиваем строку на подстроки
join() Объединяем подстроки
remove() Удаляем подстроку
replace() Заменить подстроку
countMatches() Считаем количество совпадений

StringUtils.isEmpty() и StringUtils.isBlank()

Оба метода используются для проверки того, содержит ли строка какой-либо текст. Они возвращают true, если строка действительно пуста. Кроме того, isBlank() также вернет true , если строка содержит только пробелы.

У них также есть свои обратные методы: isNotEmpty() и isNotBlank() .

Читайте также:  Parsing command line argument in java

Давай посмотрим, как ты можешь использовать isEmpty() вместе с его аналогом java.lang.String.isEmpty() , а также isBlank() :

 String nullValue = null; String emptyValue = ""; String blankValue = "\n \t \n"; if(StringUtils.isEmpty(emptyValue)) < System.out.println("emptyValue is emptyValue"); >if(StringUtils.isBlank(blankValue)) < System.out.println("blankValue is blankValue"); >if(!nullValue.isEmpty())

Здесь три переменных типа String . Одна указывает на null, вторая не является null, но не имеет содержимого (пустая строка), а третья не пустая, но при печати выдаст пустой результат.

Выполнение этого кода приводит к:

emptyValue is emptyValue blankValue is blankValue Exception in thread "main" java.lang.NullPointerException 

Метод isEmpty() , встроенный в java.lang.String, небезопасный для null. Ты легко получишь NullPointerException , если попытаешся проверить, пуста ли она, так как вызовешь метод по ссылке null. Нужно будет заранее проверить, является ли ссылка нулевой:

 String nullValue = null; String emptyValue = ""; String blankValue = "\n \t \n"; if(StringUtils.isEmpty(emptyValue)) < System.out.println("emptyValue is emptyValue"); >if(StringUtils.isBlank(blankValue)) < System.out.println("blankValue is blankValue"); >if(nullValue != null && !nullValue.isEmpty())
emptyValue is emptyValue blankValue is blankValue 

И если мы протестируем эти методы на nullString :

 String nullValue = null; if(StringUtils.isEmpty(nullValue)) < System.out.println("nullValue is emptyValue"); >if(StringUtils.isBlank(nullValue))
nullValue is emptyValue nullValue is blankValue 

Методы StringUtils безопасны для null и дают ожидаемый результат, даже если в них передали null.

StringUtils.equals()

Этот метод сравнивает две строки и возвращает true , если они идентичны или обе ссылки указывают на null, но имей ввиду, что этот метод чувствителен к регистру.

Давай посмотрим, как он работает:

 System.out.println(StringUtils.equals(null, null)); System.out.println(StringUtils.equals(null, "какая-то информация")); System.out.println(StringUtils.equals("какая-то информация", null)); System.out.println(StringUtils.equals("какая-то информация", "какая-то информация")); System.out.println(StringUtils.equals("какая-то дополнительная информация", "какая-то информация")); 
true false false true false 

​Для сравнения метода equals() из StringUtils с java.lang.String.equals() :

 String nullValue = null; System.out.println(StringUtils.equals(nullValue, null)); System.out.println(StringUtils.equals(nullValue, "какая-то информация")); System.out.println(nullValue.equals(null)); System.out.println(nullValue.equals("какая-то информация")); 
true false Exception in thread "main" java.lang.NullPointerException 

Опять же, вызов метода для ссылки null приводит к исключению NullPointerException , и нужно будет заранее проверить, является ли ссылочная переменная null, перед ее использованием.

StringUtils.compare()

Объявление этого метода выглядит следующим образом:

 public static int compare(final String str1, final String str2) 

Этот метод сравнивает две строки лексикографически, как это делает метод java.lang.String.compareTo() , возвращая:

  • 0, если str1 равно str2 (или оба равны null)
  • Значение меньше, чем 0, если str1 меньше, чем str2
  • Значение, большее, чем 0, если str1 больше, чем str2

Лексикографический порядок – это порядок по словарю. Давай посмотрим, как мы можем использовать это в нашей программе:

 System.out.println(StringUtils.compare(null, null)); System.out.println(StringUtils.compare(null , "javaRush")); System.out.println(StringUtils.compare("javaRush", null)); System.out.println(StringUtils.compare("javaRush", "JAVARUSH")); System.out.println(StringUtils.compare("javaRush", "javaRush")); 

Примечание: значение null считается меньшим, чем значение, отличное от null. Два значения null считаются равными.

Проверяем, содержит ли строка другую подстроку

Для этого в StringUtils есть 5 методов:

  • contains()
  • containsIgnoreCase()
  • containsAny()
  • containsNone()
  • containsOnly()

Метод contains() возвращает true или false в зависимости от того, содержится ли последовательность поиска в другой последовательности или нет.

Если в такой метод передать null, то он вернет false . Если передать не null, то метод просто вызовет java.lang.String.indexOf(String str) у передаваемого объекта.

 String value = "JavaRush is cool"; System.out.println(StringUtils.contains(null, "a")); System.out.println(StringUtils.contains(value, "JavaRush")); System.out.println(StringUtils.contains(value, "C++")); System.out.println(StringUtils.contains(value, "javarush")); 

Метод чувствителен к регистру, поэтому последний вызов также вернет false :

Метод containsAny() возвращает true , если строка, переданная первым аргументом, содержит хотя бы одну из подстрок, переданную 2-N аргументами.

 String value = "JavaRush is cool"; System.out.println(StringUtils.containsAny(value, "cool", "c00l", "bro", "hello")); 

Этот метод также чувствителен к регистру.

Метод containsNone()

Когда нужно проверить, что определенная строка не содержит ничего из списка, можно воспользоваться методом containsNone() . Первым параметром в него передается строка, а следующие параметры – это строки, которых не должно быть в целевой стоке.

 String s = "JavaRush is cool"; System.out.println(StringUtils.containsNone(s, 'g', 'a')); 

Работа с подстроками

Работа с подстроками похожа на работу методов класса String :

 substring(String str, int start) substring (String str, int start, int end) 

Эти методы возвращают подстроку из строки str . Строка задается двумя индексами: start и end. И как принято в Java, последний символ диапазона – end-1. В чем же преимущество этих методов?

Если передать в такой метод null, он просто вернет null, а не кинет исключение. Эти методы поддерживают отрицательные значение индексов. При этом строка рассматривается как замкнутая петля. После последнего символа идет первый и т.д.

Давай посмотрим, как мы можем его использовать:

 System.out.println(StringUtils.substring("lets java", 2, 6)); System.out.println(StringUtils.substring("lets java", -8)); System.out.println(StringUtils.substring(null, 3)); 

Выполнение приведенного выше кода дает нам:

StringUtils.split()

Метод, который позволяет разбить строку на подстроки, используя специальный символ-разделитель. Если такой есть в целевой строке, то метод вернет массив подстрок. Если символа нет – вернется пустой массив. Ну а если в метод передать null, он вернет null. Давай рассмотрим этот код и работу метода:

 String myData = "Address, City, State, Zip, Phone, Email, Password"; System.out.println(Arrays.toString(StringUtils.split(myData, ','))); System.out.println(Arrays.toString(StringUtils.split(null, '.'))); System.out.println(Arrays.toString(StringUtils.split("", '.'))); 
[Address, City, State, Zip, Phone, Email, Password] null [] 

StringUtils.join()

Метод join() позволяет склеить массив строк в одну строку. При этом в него можно передать специальный символ-разделитель, которые будет добавлен между подстроками в результирующей строке. А если в метод передать null, то он вернет null.

Этот метод представляет собой прямую противоположность методу split() . Давай рассмотрим этот простой пример:

 String myData = "Address, City, State, Zip, Phone, Email, Password"; String[] myString = StringUtils.split(myData, ','); System.out.println(StringUtils.join(myString, '-')); 

Выполнение приведенного выше кода дает нам:

Address- City- State- Zip- Phone- Email- Password 

StringUtils.replace()

Ищет строку внутри строки, находит ее, если она существует, и заменяет все ее вхождения новой строкой.

Объявление этого метода выглядит следующим образом:

public static String replace(final String text, final String searchString, final String replacement) 

Если строка поиска не найдена в тексте, то ничего не произойдет и текст останется прежним. Следуя той же логике, если текст равен null, этот метод возвращает null. Если ты ищешь null-строку или заменяешь подстроку на null, то метод вернет оригинальную строку.

Давай попробуем этот метод:

 String value = "JavaRush is the best"; System.out.println(StringUtils.replace(value, "best", "cool")); 

Источник

What is StringUtils.isBlank in Java?

Many candidates are rejected or down-leveled due to poor performance in their System Design Interview. Stand out in System Design Interviews and get hired in 2023 with this popular free course.

Overview

isBlank() is a static the methods in Java that can be called without creating an object of the class. method of the StringUtils which is used to check if the given string is blank.

When is a string considered blank?

If a string satisfies any of the criteria below, then the string is considered to be blank:

  1. The length of the string is zero or the string is empty.
  2. The string points to a null reference.
  3. The string contains only whitespace characters.

A character can be classified as a whitespace character using the method Character.isWhitespace().

How to import StringUtils

The definition of StringUtils can be found in the Apache Commons Lang package, which we can add to the Maven project by adding the following dependency to the pom.xml file:

 org.apache.commons commons-lang3 3.12.0  

For other versions of the commons-lang package, refer to the Maven Repository.

You can import the StringUtils class as follows:

import org.apache.commons.lang3.StringUtils; 

Syntax

public static boolean isBlank(final CharSequence cs) 

Parameters

final CharSequence cs : The character sequence/string to check.

Return value

This method returns true if the string is blank. Otherwise, it returns false .

Code

Example 1

The method returns false because the string is not null and not empty.

Example 2

The method returns true because the length of the string is zero.

Example 3

The method returns true because the string points to a null reference.

Example 4

The method returns true because the string contains only whitespace characters.

import org.apache.commons.lang3.StringUtils;
public class Main
public static void main(String[] args)
String s = "543234";
System.out.printf("The output of StringUtils.isBlank() for the string - '%s' is %s", s, StringUtils.isBlank(s));
System.out.println();
s = "";
System.out.printf("The output of StringUtils.isBlank() for the string - '%s' is %s", s, StringUtils.isBlank(s));
System.out.println();
s = null;
System.out.printf("The output of StringUtils.isBlank() for the string - '%s' is %s", s, StringUtils.isBlank(s));
System.out.println();
s = " \n\t";
System.out.printf("The output of StringUtils.isBlank() for the string - '%s' is %s", s, StringUtils.isBlank(s));
System.out.println();
>
>

Output

The output of the code will be as follows:

The output of StringUtils.isBlank() for the string - '543234' is false The output of StringUtils.isBlank() for the string - '' is true The output of StringUtils.isBlank() for the string - 'null' is true The output of StringUtils.isBlank() for the string - ' ' is true 

Источник

Оцените статью