Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203

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

25.05.2018, 04:10. Показов 1016. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2018, 04:10
Ответы с готовыми решениями:

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

Передача объектов дочерних классов через массив объектов родительского класса в функцию
Здравствуйте. Возможно, вопрос больше относится к теории ООП, но все же я не решился задавать его в теме теории ООП, так как он кажется мне...

Передача переменной в функцию и возврат обратно
Доброго времени суток! По ходу выполнения скрипта, передаю переменную в функцию, делаю там необходимые манипуляции и через return возвращаю...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
25.05.2018, 06:02
ну у нас тут методы это называется, я думаю ты про вот такое
Java
1
2
3
public String doSomething(String etTextName) {
 // тут твой код и не забудь вернуть результат
}
честно не понял для чего нужен tempText - он дальше где то используется?
если бы задача была подробнее/понятнее, то возможно что-то проще подсказал
1
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
25.05.2018, 15:48  [ТС]
Welemir1, используются оба объекта String. В том-то и загвоздка. Мне мало того, что я могу лишь вернуть один. Я хочу изменить их оба, желательно прямо в методе, как это, например, легко делается в плюсах, через простые указатели. Это вообще невозможно без оборачивания или выноса переменных в общее пространство? Никаких тебе мутабельных объектов?
Java
1
2
3
//...
doSomething(tempText,etTextName); //изменяются оба переданных объекта
//...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
25.05.2018, 15:56
Цитата Сообщение от YarRainbow Посмотреть сообщение
могу лишь вернуть один
Парсишь входящий стринг как тебе угодно, издеваешься над полученным, складываешь все это дело в лист и возвращаешь. Хоть 100500 строк. Не?
1
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
25.05.2018, 16:02  [ТС]
То есть, только обернуть в лист, без этого никак? Просто под две строчки создавать контейнер...

Просто в плюсах было бы нечто такое:
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
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
25.05.2018, 16:10
YarRainbow, Ну из метода можно вернуть только один объект. Можно определить исходный стринг в поле класса или статик переменную, а возвращать из метода полученный отгрызок...
1
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
25.05.2018, 16:59
Попробуй так
Java
1
public void doSomething(String... s)
снаружи массива не будет видно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.05.2018, 16:59
Помогаю со студенческими работами здесь

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

Передача двумерного массива в функцию (void) и обратно
Есть такое дело: определяю в хидере .h: static void InputTwoArray(int** a, int N, int M); далее в .cpp: void...

Передача объектов в функцию: особенности
Здравствуйте! Пишу программу с применением классов, и возник один вопрос, на который то ли гугл не имеет ответа, то ли я плохо искал, но, в...

Передача в функцию динамический массив объектов первого и второго типа
каким способом это можно сделать ? )

C++ & winapi - передача объектов переменных в функцию thread для их обработки?
#include "WinThread.h" //int flag; LPVOID hf1,hf2,hf3,hf0; void CALLBACK f2(void*) { while(1){ SwitchToFiber(hf1); ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru