У меня есть строка (которая в основном представляет собой имя файла в соответствии с соглашением об именах) abc.def.ghi
Я хотел бы извлечь подстроку перед первой .
(т.е. точкой)
В java doc api я не могу найти метод в String, который это делает.
Я что-то упускаю? Как это сделать?
Принятый ответ правильный, но он не говорит вам, как его использовать. Вот как вы используете функции indexOf и подстроки вместе.
источник
Вы можете просто разделить строку ..
Обратите внимание, что java.lang.String.split использует значение регулярного выражения разделителя. В основном так ...
Конечно, для ясности это разделено на несколько строк. Это можно было бы записать как
источник
Если ваш проект уже использует commons-lang , StringUtils предоставляет для этой цели хороший метод:
см. javadoc [2.6] [3.1]
источник
или вы можете попробовать что-то вроде
"abc.def.ghi".substring(0,"abc.def.ghi".indexOf(c)-1);
источник
def.hij.klm
? Как тогда будет работать ваш код? (Ваш код работает только для этого одного примера - вы также можете написать функцию, которая возвращает"abc"
- она будет работать точно так же)Как насчет использования регулярного выражения?
Это заменяет все от первой точки до конца на "" (т.е. очищает ее, оставляя вам то, что вы хотите)
Вот тест:
Вывод:
источник
В java.lang.String вы получаете некоторые методы, такие как indexOf (): который возвращает вам первый индекс символа / строки. и lstIndexOf: который возвращает последний индекс String / char
Из Java Doc:
Возвращает индекс в этой строке первого вхождения указанного символа.
источник
Вот код, который возвращает подстроку от a
String
до любого из заданного списка символов:источник
Это может помочь:
источник