Магия в Java Substring

197
26 мая 2017, 12:44

Столкнулся со следующим непониманием, при переносе кода на 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 символа. В чем может быть проблема?

Answer 1
 public String substring(int beginIndex, int endIndex) 

метод substring принимает начало и конец, а не начала и количество символов

Answer 2

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

substring(int beginIndex, int endIndex)
Answer 3

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

READ ALSO
WebViewClient onReceivedSslError уязвимость

WebViewClient onReceivedSslError уязвимость

Всем привет у меня такая проблема Оповещение системы безопасности Ваше приложение использует незащищенную версию обработчика WebViewClientonReceivedSslError

252
Не могу удалить session.delete() объекты @OneToMany связанных таблиц

Не могу удалить session.delete() объекты @OneToMany связанных таблиц

Здравствуйте коллеги! Помогите пожалуйста разобраться с проблемкойЕсть два java класса сущности (@Entity), связанные по @OneToMany:

243