Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Магия в Java Substring

#java #строки #подстрока


Столкнулся со следующим непониманием, при переносе кода на c# под java.
Нужно вытащить из строки символов подстроку, взять, начиная с некоторой k-й позиции
n-символов. Собственно, код:

str = "((15+3)+14/2+(7*2)+3^2+(12+(7*2)))";
System.out.println(str.substring(27, 5));


Для меня, как человека немного знакомого с шарпом, код вполне понятный и логичный.
В строке 33 символа, собственно, мне необходимо получить подстроку с 27 - символ (
по 32, символ ). Но в результате я получаю ошибку OutOfBoundException. Причем даже,
если захочу взять с 10 позиции 3 символа. В чем может быть проблема?
    


Ответы

Ответ 1



Согласно документации java, метод substring принимает 2 параметра: начальный индекс - откуда начинать вырезать, и конечный индекс - до куда вырезать. substring(int beginIndex, int endIndex)

Ответ 2



public String substring(int beginIndex, int endIndex) метод substring принимает начало и конец, а не начала и количество символов

Ответ 3



Разобрался, я просто очень плохо знаю java. Нужно указать позиции символов в массиве явно, а не кол-во элементов, которые я хотел бы взять как в c#.

Ответ 4



Вывести последние 5 символов поможет код: System.out.println(str.substring(str.length()-5, str.length()));

Комментариев нет:

Отправить комментарий