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);

это имеет то преимущество, что не использует механизм регулярных выражений (который не является легким, не используйте принятое решение в цикле).


String mainChapterNumber = chapterNumber.substring(0,chapterNumber.indexOf("."));