Разное

Найти символ в строке в java – Найти символ или слово в строке — Java примеры / ProgLang

Содержание

Управление строками, функции для работы со строками в Java

В этом уроке мы продолжим изучение строк в Java. Основы работы со строками можно посмотреть в уроке «Строки в Java». Класс String в Java имеет набор методов для управление содержимым строки. Находить символы, подстроки, изменять регистр и другие задачи.

Получение символов и подстрок

Вы можете получить символ, находящийся на определенной позиции в строке, вызвав метод charAt(). Индекс первого символа в строке — 0, последнего — length() -1. Следующий код возвращает 9 символ строки.
String anotherPalindrome = "Niagara. O roar again!";
char aChar = anotherPalindrome.charAt(9);
Нумерация символов начинается с 0, поэтому 9 символ в строке — «О». Если вам необходимо получить не один символ, а часть строки, можно использовать метод substring. Метод substring имеет два варианта: Следующий код вернет подстроку строки, начиная с 11 символа, но не включая 15, получится слово «roar»
String anotherPalindrome = "Niagara. O roar again!";
String roar = anotherPalindrome.substring(11, 15);

Другие методы для управления строками

В таблице приведены некоторые методы для работы со строками и их описание.

Поиск символов и подстрок

Рассмотрим еще несколько методов для поиска символов и подстрок. Класс String содержит методы, которые возвращают позицию символа или подстроки в строке: indexOf() и lastIndexOf(). Методы indexOf() осуществляют поиск с начала строки, lastIndexOf() - с конца. Если данные методы не нашли совпадений, они возвращают -1. Также класс String содержит метод contains, который возвращает true, если заданная последовательность символов содержится в строке. Используйте этот метод, если необходимо узнать о существовании подстроки в строке, а её позиция не важна. В следующей таблице описываются методы indexOf() и lastIndexOf(). CharSequence — это интерфейс, который реализует класс String, поэтому вы можете передавать строки в метод
contains()
.

Изменение строк. Замена символов и подстрок

Класс String имеет несколько методов для вставки символов и подстрок в строку. В таблице описаны методы для замены найденных символов и подстрок.

Пример

Следующий класс Filename показывает пример использования методов lastIndexOf() и substring() для использования разных частей строки с именем файла. Теперь рассмотрим программу, которая использует класс Filename: Программа выведет: Метод extension использует метод lastIndexOf для определения последнего вхождения ".". Метод substring использует это значение для нахождения расширения файла. Ссылка на первоисточник: Управление строками, функции для работы со строками в Java Управление строками, функции для работы со строками в Java. Часть 2

javarush.ru

Строки в Java

В этом уроке мы научимся работать со строками в Java. Строки, которые так широко используются в программировании представляют из себя последовательность символов. В языке программирования Java строки — это объект. Платформа Java предоставляет класс String для создания и управления строками.

Создание строк

Самый простой способ создания строки выглядит так:
String greeting = "Hello world!";
В данном случае «Hello World!» — это строковый литерал (т.е. константа) состоящая из последовательности символов, заключенных в кавычки. Всякий раз, когда компилятор сталкивается со строковым литералом, он создает объект типа String со значением, в нашем случае, «Hello World!». Как и любой другой объект, строку можно создать, используя ключевое слово new. Класс String имеет три конструктора, которые позволяют создавать объект, используя разные источники, например, массив символов. Последняя строка примера выведет на экран hello. Класс String является неизменяемым, поэтому один раз создав объект, мы не сможем его изменить. Некоторые методы, которые мы рассмотрим ниже, позволяют это исправить. Т.к. String неизменяем, эти методы создают и возвращают новую строку, содержащую результат операции.

Длина строки

Методы для получения информации о строке называются методами доступа. Один из этих методов length(). Он возвращает количество символов в строке. В следующем примере len будет равно 17: Переменная palindrome содержит палиндром, т.е. слово или предложение, которое одинаково читается в обе стороны. Напишем небольшую программу, которая перевернет палиндром. Мы будем использовать метод charAt(i), который возвращает i-й символ строки, начиная с 0. Программа выведет
doT saw I was toD
Для того чтобы перевернуть строку, мы сначала создали из строки массив символов (первый цикл), затем создали новый массив, в который записали перевернутый первый массив, далее создали новую строку. Класс String содержит метод getChars(), который возвращает массив символов, поэтому первый цикл можно заменить строкой:
palindrome.getChars(0, len, tempCharArray, 0);

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

Класс String реализует метод соединения двух строк:
string1.concat(string2);
Данный код вернет новую строку, содержащую string1 и присоединенную к ней string2. Также можно использовать данный метод со строковыми литералами:
"My name is ".concat("Rumplestiltskin");
Чаще строки соединяют с помощью оператора «+», пример:
"Hello," + " world" + "!"
В результате получится строка «Hello, world!». Оператор «+» широко используется для вывода информации, например:
String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
Код выведет «Dot saw I was Tod». Подобная конкатенация может быть использована в связке с любыми другими объектами. Для объектов не являющимися строками будет вызван метод toString(), который конвертирует их в строки. Задаем формат вывода строк Мы уже рассматривали методы printf() и format() когда форматировали вывод чисел. Класс
String
имеет аналогичный метод, который возвращает строку. Используя статический метод format() можно создать стоковый шаблон, который можно повторно использовать, например, вместо этого: можно использовать этот код: На этом всё! 🙂 Ссылка на первоисточник: Строки в Java

javarush.ru

[Перевод] 10 самых задаваемых вопросов о строках в Java

  • Как сравнивать строки? Что использовать: "==" или equals()?

    Вкратце, "==" сравнивает ссылки на строки, а equals() сравнивает значения, содержащиеся в этих строках. Если вы не хотите проверить, что две строки являются одним и тем же объектом, то вам следует использовать equals().

    Также было бы неплохо знать концепцию пула строк.

  • Почему char[] предпочтительнее строк (String) для защиты конфиденциальной информации?

    Строки неизменяемы. Это значит, что однажды созданная строка не будет изменяться до непосредственного запуска механизма сборщика мусора. В случае с массивом совершенно очевидно, что мы можем изменять его элементы. Таким образом, конфиденциальная информация (например, пароль) не будет храниться в открытом виде в любом месте программы.

  • Можем ли мы передавать строки в качестве параметра при использовании оператора switch?

    Да, начиная с 7-ой версии JDK. Ранее в 6-ой версии, такой возможности не было.

    
    switch (str.toLowerCase()) {
          case "a":
               value = 1;
               break;
          case "b":
               value = 2;
               break;
    }
  • Как конвертировать строку в целочисленное значение?

    int n = Integer.parseInt("10");

    Аналогично и для остальных примитивных типов Java.

  • Как разделить строку на строки с разделителем-пробелом?

    Проще всего использовать регулярные выражения. "\s" выступает как заменитель пробельных символов, таких как " ", "\t", "\r", "\n".

    String[] strArray = aString.split("\\s+");
  • <Что на самом деле делает метод substring()

    ?

    В JDK 6, метод substring() показывал часть символов из существующей строки, но не создавал отдельного экземпляра строки. Чтобы создать новую строку, представленную в виде массива символов можно добавить какую-нибудь пустую строку, например, так:

    str.substring(m, n) + ""

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

    В Oracle JDK 7, метод substring() создаёт новый массив символов, не используя уже существующий. Вы также можете взглянуть на диаграмму, представляющую разницу методов substring() в JDK 6 и JDK 7.

  • String против StringBuilder против StringBuffer

    String против StringBuilder: StringBuilder изменяем, это значит, что мы можем изменить его содержание после создания объекта.

    StringBuilder против StringBuffer: StringBuffer синхронизирован, это значит, что он функционирует корректно при использовании из нескольких потоков одновременно, но медленнее чем

    StringBuilder.

  • Как повторить строку несколько раз?

    В Python, мы можем просто умножить строку на число n и, тогда, она будет повторяться n раз. В Java, мы можем использовать метод repeat() из класса StringUtils библиотеки Apache Commons Lang.

    String str = "abcd";
    String repeated = StringUtils.repeat(str,3);
    
  • Как конвертировать строку в дату?

    String str = "Sep 17, 2013";
    Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
    System.out.println(date);
    
  • Как посчитать количество вхождений определённого символа в строке?

    Используйте класс StringUtils из библиотеки Apache Commons Lang.

    int n = StringUtils.countMatches("11112222", "1");
    System.out.println(n);
  • Это перевод статьи. Оригинал расположен по адресу:

    Нашли ошибку/неточность в переводе? Сообщайте об этом в данной теме.

    javarush.ru

    Отправить ответ

    avatar
      Подписаться  
    Уведомление о