Java: удалить все символы после точки
у меня вопрос, Я получил следующий код
String chapterNumber = "14.2.1";
Как я могу добиться, чтобы получить строку, подобную следующей из моего "chapterNumber"
String mainChapterNumber = "14";
Edit: Я хочу, чтобы все числа в int / String (не имеет значения для меня) до первой точки
8 ответов
если это только первая часть входной строки, которые вы хотите, вы должны сделать
String mainChapterNumber = chapterNumber.split("\.", 2)[0];
второй аргумент split
(2
) указывает, что мы должны разделить только на первый возникновения .
; это быстрее, чем разбиение на все экземпляры .
что и произошло бы, если бы мы не предоставили этот второй аргумент.
соответствующие Документация
просто используйте следующую конструкцию:
String mainChapterNum = chapterNumber.substring(0, chapterNumber.indexOf("."));
это вернет подстроку вашего текущего номера главы, начиная с первого символа, который помещается в индекс 0 и заканчивается до первого появления "."
String chapterNumber = "1.2.1";
int index = chapterNumber.indexOf(".");
String mainChapterNumber = chapterNumber.substring(0,index);
попробуйте сыграть с индексами вашей строки. Найти индекс первой точки, а затем использовать substring
метод сохранения подстроки между началом и этим событием.
есть несколько способов сделать это. Самый простой-я бы порекомендовал использует подстроку, и indexOf: Вот так:
String result = chapterNumber.substring(0, chapterNumber.indexOf("."));
другой способ сделать это было бы так:
String result = chapterNumber.split("\.")[0];
попробовать, как показано ниже...
String chapterNumber = "1.2.1";
String[] getdt = chapterNumber.split("\.");
String mainChapterNumber = getdt[0];
просто для записи, другое решение с использованием разделитель гуавы:
String mainChapterNumber = Iterables.get(Splitter.on('.').split(chapterNumber), 0);
это имеет то преимущество, что не использует механизм регулярных выражений (который не является легким, не используйте принятое решение в цикле).