Строки в Java

  • Строки в Java

    Как добавить перенос строки в Java

    Как добавить перенос строки в Java[Как добавить перенос строки в Java]

    Что такое перенос строки

    Перенос строки, он же перенос каретки это один или несколько спецсимволов, означающие окончание текущей строки символов и перевод картеки на новую строку. В зависимости от операционной системы используются разные спецсимволы. Например, в Windows используются спецсимволы CR + LF: Подробнее ...

  • Строки в Java

    Поиск строки в списке List

    Поиск строки в списке List

    Если у вас есть список строк (List<String>) и вам требуется найти определённую строку в этом списке (или проверить, что список содержит нужную строку), вы можете это легко сделать несколькими способами:

    • С помощью стримов (этот способ подходит для Java 8 и выше)
    • С помощью итерирования по списку

    Поиск строк с помощью стримов

    Данный способ доступен для версии Java 8 и выше:

    List<String> langs = new ArrayList<>();
    langs.add("Java");
    langs.add("JavaScript");
    langs.add("Kotlin");
    langs.add("Scala");
    langs.add("Groovy");
    langs.add("Python");
    
    List<String> result = langs.stream()
            .filter(lang -> lang.contains("Java"))
            .collect(Collectors.toList());
    
    System.out.println(result);

    В консоль выведется:

    [Java, JavaScript]

    Чтобы учитывать полные совпадения строки, можно заменить эту строчку в коде:

    .filter(lang -> lang.contains("Java"))

    на следующую:

    .filter(lang -> lang.equals("Java"))

    В этом случае вывод в консоль будет следующим:

    [Java]

    Если же нужно просто проверить, есть ли искомая строка в списке, можно упростить код:

    boolean result = langs.stream().anyMatch(lang -> lang.equals("Java")); Подробнее ...

  • Строки в Java

    Конкатенация строк в Java

    Конкатенация строк в Java[Конкатенация строк в Java]

    Строки интенсивно используются в программах на Java. Строки представляют собой последовательность символов. Для создания строки, обычно используется строковый литерал. Одна из особенностей строк в Java – они иммутабельны, то есть после создания они не могут быть изменены. Все операции над строками порождают новые строки, но никогда не меняют уже созданные. Это приводит к тому, что при интенсивных операциях над строками создаётся и высвобождается излишнее количество объектов с очень коротким временем жизни. Для решения этой проблемы были созданы StringBuffer и несколько позднее – StringBuilder.

    Конкатенация с помощью оператора +

    В самом простом случае можно объединить строки, воспользовавшись оператором сложения:

    String hello = "Hello";
    String world = " World";
    System.out.println(hello + world);

    Результатом выполнения данного кода будет вывод строки "Hello World" в консоль. Это самый простой и в большинстве случаев подходящий способ конкатенации строк в Java.

    StringBuilder и StringBuffer, в отличие от класса String, созданы для того, чтобы иметь возможность изменять своё строковое значение. Оба эти класса инкапсулируют в себе массив байтов, в который добавляются новые значения. Когда длины массива недостаточно, выделяется память под массив большей размерности и все данные записываются в него.

    Для чего используется StringBuilder

    Обычно StringBuilder используется, если нужно создать строку в несколько этапов, используя несколько операций конкатенации, или же в цикле:

    StringBuilder s = new StringBuilder();
    s.append("Hello");
    s.append(" World");
    s.append(" in Java!");
    System.out.println(s.toString());

    С помощью метода StringBuilder.append() мы изменяем значение, хранящееся внутри экземпляра StringBuilder. Эта операция очень дешёвая в отличие создания новых объектов.

    Давайте сравним производительность создания в цикле множества объектов String и использование StringBuilder. У нас есть два цикла:

    long start = System.currentTimeMillis(); String s1 = ""; for (int i=0; i< 50000; i++) { s1 = s1 + "a"; } System.out.println(System.currentTimeMillis() - start); long start2 = System.currentTimeMillis(); StringBuilder sb = new StringBuilder(); for (int i=0; i< 50000; i++) { sb.append("a"); } System.out.println(System.currentTimeMillis() - start2); Подробнее ...

  • Строки в Java

    Как заменить символ в строке

    Как заменить символ в строке[Как заменить символ в строке]

    Строки в Java представляют собой последовательности символов. Причём строки в Java иммутабельны, то есть неизменяемы – вы не можете изменить строку после её создания. Значит ли это, что невозможно изменить символ в строке? Подробнее ...

  • Строки в Java

    Как удалить пробелы из строки

    Как удалить пробелы из строки[Как удалить пробелы из строки]

    Для удаления пробелов в начале и конце строки есть метод String.trim:

    String input = "    апельсины , мандарины , лимоны  ";
    String output = input.trim();
    System.out.println(output);

    В результате вы получите строку без пробелов в начале и конце:

    апельсины , мандарины , лимоны

    Как удалить пробелы из строки Подробнее ...

  • Строки в Java

    Как создать строку

    Как создать строку[Как создать строку]

    Строки – неизменяемые (иммутабельные) классы в языке программирования Java. Строки используются везде – для указания всевозможных путей к файлам, настроек приложения, логинов и паролей (хотя для паролей рекомендуется использовать байтовые массивы, для большей безопасности приложения). Подробнее ...