Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java
Войти
Регистрация
Восстановить пароль
 
YarRainbow
63 / 46 / 27
Регистрация: 27.04.2015
Сообщений: 195
#1

Передача нескольких объектов в функцию и обратно

25.05.2018, 04:10. Просмотров 175. Ответов 6

Доброго времени суток.
С Java, честно, не знаком, вообще. Немножко знаю плюсы. Поэтому некоторые нюансы вводят в ступор.
Есть простая локальная задача: вырезать первую строку из объекта String в другой String (то есть строка копируется во временный объект и удаляется затем из предыдущего)
Java
1
2
tempText = etTextName.substring(0, etTextName.indexOf('\n'));
etTextName = etTextName.substring(etTextName.indexOf('\n') + 1, etTextName.length());
Но этот кусок кода, надо обернуть и вынести в функцию. Если в плюсах я просто мог передать указатели на оба объекта через параметры, то в Java я вообще не врубаюсь, как можно обойтись без лишних оберток и глобальных переменных.
Я уже и методы String по нескольку раз пролистал, надеясь, что просто неправильно решаю задачу, используя substring...

Суть вынесения в функцию - рефакторинг. Создавать глобальные переменные или обертки я не хочу - задача ведь элементарная. Помогите, пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2018, 04:10
Ответы с готовыми решениями:

передача по HTTP сериализованных объектов
Задача - jsp скрипт сериализует объект, и должен его передать клиенту....

Преобразовать XML с рекурсивной вложенностью объектов в Java объект и обратно
У меня есть XML следующего вида: <?xml version="1.0" encoding="UTF-8"...

Декартово дерево. Передача объектов в дерево. Сравнение объектов в дереве
Нашёл статью про декартово дерево на хабре на языке C#...

Передача объектов методу по ссылке
Я не совсем понимаю, если объект передаётся методу в качестве аргумента только...

Передача переменных в функцию
Некоторую заминку у меня вызвала следующая ситуация. Предположим, есть класс...

6
Welemir1
Автоматизируй это!
817 / 551 / 229
Регистрация: 30.03.2015
Сообщений: 2,152
25.05.2018, 06:02 #2
ну у нас тут методы это называется, я думаю ты про вот такое
Java
1
2
3
public String doSomething(String etTextName) {
 // тут твой код и не забудь вернуть результат
}
честно не понял для чего нужен tempText - он дальше где то используется?
если бы задача была подробнее/понятнее, то возможно что-то проще подсказал
1
YarRainbow
63 / 46 / 27
Регистрация: 27.04.2015
Сообщений: 195
25.05.2018, 15:48  [ТС] #3
Welemir1, используются оба объекта String. В том-то и загвоздка. Мне мало того, что я могу лишь вернуть один. Я хочу изменить их оба, желательно прямо в методе, как это, например, легко делается в плюсах, через простые указатели. Это вообще невозможно без оборачивания или выноса переменных в общее пространство? Никаких тебе мутабельных объектов?
Java
1
2
3
//...
doSomething(tempText,etTextName); //изменяются оба переданных объекта
//...
0
iSmokeJC
Модератор
678 / 629 / 303
Регистрация: 21.10.2017
Сообщений: 2,108
25.05.2018, 15:56 #4
Цитата Сообщение от YarRainbow Посмотреть сообщение
могу лишь вернуть один
Парсишь входящий стринг как тебе угодно, издеваешься над полученным, складываешь все это дело в лист и возвращаешь. Хоть 100500 строк. Не?
1
YarRainbow
63 / 46 / 27
Регистрация: 27.04.2015
Сообщений: 195
25.05.2018, 16:02  [ТС] #5
То есть, только обернуть в лист, без этого никак? Просто под две строчки создавать контейнер...

Просто в плюсах было бы нечто такое:
C++
1
2
3
4
5
6
7
8
9
10
11
void doSomething(String &tempText, String &etTextName) {
tempText = etTextName.substring(0, etTextName.indexOf('\n'));
etTextName = etTextName.substring(etTextName.indexOf('\n') + 1, etTextName.length());
}
 
int main(){
String s1,s2;
//...
doSomething(s1,s2);
return 0;
}
0
iSmokeJC
Модератор
678 / 629 / 303
Регистрация: 21.10.2017
Сообщений: 2,108
25.05.2018, 16:10 #6
YarRainbow, Ну из метода можно вернуть только один объект. Можно определить исходный стринг в поле класса или статик переменную, а возвращать из метода полученный отгрызок...
1
vcrop
212 / 173 / 80
Регистрация: 14.06.2016
Сообщений: 375
25.05.2018, 16:59 #7
Попробуй так
Java
1
public void doSomething(String... s)
снаружи массива не будет видно
0
25.05.2018, 16:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2018, 16:59

Передача масива в функцию
public class Game { GameView gameview; int pole ; int box; ...

Передача объектов COM из NET в native и обратно
Всем доброе утро. Интересует вопрос передачи данных между двумя языками. ...

Передача массива из main() в функцию и обратно
Доброго времени суток, уважаемые форумчане! Пишу на С программку, чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru