Как проверить содержит ли строка подстроку java
Для того, чтобы найти подстроку в строке в Java , вы можете использовать метод indexOf() или lastIndexOf() класса String . Эти методы позволяют найти индекс первого (или последнего) вхождения заданной подстроки в строке. Если подстрока не найдена, методы возвращают -1.
Например, чтобы найти индекс первого вхождения подстроки «world» в строке «Hello world!», вы можете использовать следующий код:
String str = "Hello world!"; int index = str.indexOf("world"); System.out.println(index); // => 6
Также можно использовать метод contains() для проверки наличия подстроки в строке без необходимости получать ее индекс.
String str = "Hello world!"; boolean contains = str.contains("world"); System.out.println(contains); // => true
Проверить, является ли переменная строкой в JavaScript
В этом посте мы обсудим, как проверить, является ли переменная строкой в JavaScript. Переменная может быть либо примитивным значением, либо экземпляром стандартного встроенного объекта ECMAScript.
1. Использование typeof оператор
Рекомендуемое решение — использовать оператор typeof для определения типа операнда. Это показано ниже:
const val = ‘Hello World’ ;
if ( typeof val === ‘string’ ) <
console . log ( 'Variable is a string' ) ;
console . log ( 'Variable is not a string' ) ;
результат: Variable is a string
The typeof оператор вернет object для строк, созданных с помощью new String() . С этим можно справиться с помощью instanceof оператор.
const val = new String ( ‘Hello World’ ) ;
if ( typeof val === ‘string’ || val instanceof String ) <
console . log ( 'Variable is a string' ) ;
console . log ( 'Variable is not a string' ) ;
результат: Variable is a string
2. Использование Object.prototype.toString.call() функция
Другой подход состоит в том, чтобы найти класс объектов, используя toString метод из Object.prototype . Вы можете использовать это как:
function isString ( x ) < return Object . prototype . toString . call ( x ) === '[object String]' ; const val = 'Hello World' ; if ( isString ( val ) ) < console . log ( 'Variable is a string' ) ; console . log ( 'Variable is not a string' ) ; результат: Variable is a string
3. Использование библиотеки Lodash/Underscore
Если вы используете библиотеку Underscore или Lodash, рассмотрите возможность использования _.isString метод, который возвращает true для указанного значения, является строковым примитивом или строковым объектом.
const _ = require ( ‘lodash’ ) ; // или подчеркивание
const val = new String ( ‘Hello World’ ) ;
if ( _ . isString ( val ) ) <
console . log ( 'Variable is a string' ) ;
console . log ( 'Variable is not a string' ) ;
результат: Variable is a string
4. Использование jQuery
С jQuery, $.type() можно использовать для определения типа объекта. Это работает как с примитивными строковыми значениями, так и со встроенными объектами String. Вот рабочий пример:
const < JSDOM >= require ( «jsdom» ) ;
const < window >= new JSDOM ( ) ;
const $ = require ( «jquery» ) ( window ) ;
const val = ‘Hello World’ ;
if ( $ . type ( val ) === ‘string’ ) <
console . log ( 'Variable is a string' ) ;
console . log ( 'Variable is not a string' ) ;
результат: Variable is a string
Это все, что касается определения того, является ли переменная строкой в JavaScript.
Оценить этот пост
Средний рейтинг 4.71 /5. Подсчет голосов: 31
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Подписывайся
0 Комментарии
Встроенные отзывы
Просмотреть все комментарии
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации
- Все проблемы
- Практика DSA
- 100 самых популярных задач
- 50 лучших классических задач
- Лучшие алгоритмы
- Компилятор С/С++
- Компилятор Java
- Компилятор Python
- Компилятор JavaScript
- компилятор PHP
- Компилятор C#
- Свяжитесь с нами
- Политика конфиденциальности
- условия обслуживания
- Подпишитесь на новые публикации
Techie Delight © 2023 Все права защищены.
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
Как проверить строку на наличие спецсимволов?
Необходимо проверить строку на наличие спецсимволов и цыфр. Проверитьт, содержит ли строка только буквы латинского алфавита.
Например строка «рои134432-=-!»№;;» не подходит, а строка «golang» подходит.
На питоне есть замечательный метод, который буквально в пару строк кода делает эту проверку, есть ли у нас что то магическое?))))
- Вопрос задан более трёх лет назад
- 2105 просмотров
Комментировать
Решения вопроса 2
Папа Стифлера @PapaStifflera
Родился, вырос.
package main import "fmt" import "regexp" var IsLetter = regexp.MustCompile(`^[a-zA-Z]+$`).MatchString func main() < fmt.Println(IsLetter("golang")) // true fmt.Println(IsLetter("рои134432-=-!№;;")) // false >
Ответ написан более трёх лет назад
Нравится 4 1 комментарий
как проверить строку на наличие числа?
Добрый вечер! Пытаюсь проверить строку на наличие в ней числа стандартным способом isDigit, но чтото не выходит. Прошу помощи по этому вопросу. Код:
for (String s : counts) if (!s.equals("")) int b = Integer.parseInt(s); if (Character.isDigit(b)) list.add(s); > else continue; >
Может быть это от того, что у меня идет проверка числа типа int, а нужно проверять символ типа char? Если да, то как это исправить?
Комментарии (18)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Уровень 20
8 ноября 2020, 02:55
Блин, как это тут из 2017 года всплыло.
Уровень 29
9 ноября 2022, 18:59
Блин, как этот чел из 2020 всплыл.
Уровень 20
8 ноября 2020, 02:38
Проверка isDigit(b) , в данном коде бессмысленна — если в строке s будет не число, то Integer.parseInt(s) выбросит исключение и программа прекратит работу, не доходя до этой проверки. Задачу ты не привёл, но для того, что бы проверить строку на наличие числа можно использовать метод contains(CharSequence s) класса String. Берёшь строку и проверяешь, содержит она символы от 0 до 9 или нет.
Уровень 20
8 ноября 2020, 02:51
Или, если не хочеца перебирать все цифры циклом, то использовать matcher и регулярку, но это отдельная тема.
Уровень 17
21 мая 2020, 12:24
Йоу, строка — это последовательность символов типа char. А у класса Character есть опупенный метод isDigit() — тру если чар содержит число, фолс если содержит не цифровой символ. for(char c : s.toCharArray()) if(Character.isDigit(c)) dosome; парсить нифига не надо в инты, зачем, если ты используешь метод из класса Кэлэктер.
Уровень 16
30 июня 2020, 17:25
Уровень 22
8 ноября 2020, 01:31
Спасибо тебе, добрый человек:)
Уровень 34
11 декабря 2017, 03:56
если это вопрос не по задаче, уточни, что для себя интересуешься. если это задача, то какая? какие пункты не проходит, опять, же. какой контекст задачи? (пусть даже житейской)) «проверить строку на наличие в ней числа стандартным способом isDigit» это самоцель? а вообще гугл стаковерфлоу
Уровень 40
10 декабря 2017, 19:19
Без полного текста программы не особо понятно, в чем должен быть смысл этих преобразований: сначала строка преобразуется в число (например, «123» в 123), затем полученное число преобразуется в символ (по коду ASCII), и в конце — проверка, является ли этот символ цифрой от ‘0’ до ‘9’, т.е. попадает ли число, в которое преобразована строка, в диапазон от 48 до 57.
Уровень 22
10 декабря 2017, 19:36
это вы сейчас описали мой код? или как нужно решить задачу?
Уровень 40
10 декабря 2017, 20:14
Это то, что в приведенном фрагменте происходит внутри цикла: Integer.parseInt — преобразование строки в число, Character.isDigit — проверка, является ли указанный символ цифрой.
Уровень 22
10 декабря 2017, 22:17
Ну, я это знаю, я же написал этот код. У меня проблема в том, что проверка идет и, хоть и указанный символ — цифра, он не добавляется почему-то в список list.
Уровень 40
10 декабря 2017, 22:45
Еще раз попробую: Character.isDigit проверяет символы именно по ASCII-коду. Код 48 соответствует символу ‘0’, для этого значение строки s должно быть «48». 49 — ‘1’, строка должна иметь значение «49» и так далее до ‘9’ — код 57, треубемое значение s — «57». Т.е. в список в данном случае могут быть добавлены только строки «48», «49» . «57», все остальные значения не будут давать true для Character.isDigit
Уровень 40
10 декабря 2017, 23:10
Армен Саркисян Integer.parseInt(s) выкинет NumberFormatException если в «s» будет хоть один нечисловой символ (минус в начале не считается)
Уровень 41
23 января 2020, 10:12
пробуй через try-catch парсим в try, если число продолжаем процедуру в try если нет — в catch. а если у тебя буквы с цифрами вперемешку, то наверное нужно разбить на массив по символу и каждый проверять что-ли. Сам учусь)
Уровень 20
8 ноября 2020, 02:41
Непонятно, что нужно сделать — проверить, является ли строка числом или проверить, содержит ли строка число. Это разные разницы.
Уровень 41
8 ноября 2020, 09:13
Я так давно это писал что уже забыл)) Итак, твой код:
for (String s : counts) if (!s.equals("")) // если строка пуста, можно использовать s.isEmpty(); int b = Integer.parseInt(s); // если строка это число то b = s в виде числа, иначе NumberFormatException if (Character.isDigit(b)) // если b - число, то. list.add(s); > else continue; >
Если метод parseInt() отработает и не бросит исключение — значит точно число и проверка if (Character.isDigit(b)) не имеет смысла. Можно обернуть парсинг в конструкцию try-catch (можешь почитать в интернете что это такое).
for(String s : arr) try int b = Integer.parseInt(s); // если доходит до сюда - число > catch (NumberFormatException e) // если доходит сюда - не число > >
или тоже самое можно сделать так
for (String s : arr) if(Pattern.matches("\\d+", s)) // число > >
Это регулярные выражения. А можно так:
for (String s : arr) char[] chars = s.toCharArray(); boolean isDigit = true; for (char c : chars) if (!Character.isDigit(c)) // если доходит сюда - значит не число // нет смысла дальше проверять isDigit = false; break; // останавливаем цикл > > System.out.println(isDigit); // выводим информацию на экран >