Это WORKS ..
Помните, что в первый раз, когда вы напечатаете передаваемое значение, вы получите нуль, вы можете использовать его после загрузки Windows, то же самое для всего, что вы хотите кодировать для любого другого компонента.
Первый контроллер
blockquote>try { Stage st = new Stage(); FXMLLoader loader = new FXMLLoader(getClass().getResource("/com/inty360/free/form/MainOnline.fxml")); Parent sceneMain = loader.load(); MainOnlineController controller = loader.<MainOnlineController>getController(); controller.initVariable(99L); Scene scene = new Scene(sceneMain); st.setScene(scene); st.setMaximized(true); st.setTitle("My App"); st.show(); } catch (IOException ex) { Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE, null, ex); }
Другой контроллер
blockquote>public void initVariable(Long id_usuario){ this.id_usuario = id_usuario; label_usuario_nombre.setText(id_usuario.toString()); }
Лучшая вещь сделать состоит в том, чтобы использовать алгоритм remove_if
и isspace:
remove_if(str.begin(), str.end(), isspace);
Теперь сам алгоритм не может измениться, контейнер (только изменяют значения), таким образом, это на самом деле переставляет значения вокруг и возвращает указатель туда, где конец теперь должен быть. Таким образом, мы должны назвать строку:: сотритесь для фактического изменения длины контейнера:
str.erase(remove_if(str.begin(), str.end(), isspace), str.end());
Мы должны также отметить, что remove_if сделает самое большее одну копию данных. Вот демонстрационная реализация:
template<typename T, typename P>
T remove_if(T beg, T end, P pred)
{
T dest = beg;
for (T itr = beg;itr != end; ++itr)
if (!pred(*itr))
*(dest++) = *itr;
return dest;
}
std::string::iterator end_pos = std::remove(str.begin(), str.end(), ' ');
str.erase(end_pos, str.end());
От gamedev
string.erase(std::remove_if(string.begin(), string.end(), std::isspace), string.end());
Можно ли использовать Строковый Алгоритм Повышения? http://www.boost.org/doc/libs/1_35_0/doc/html/string_algo/usage.html#id1290573
erase_all(str, " ");
Я боюсь, что это - лучшее решение, о котором я могу думать. Но можно использовать резерв (), чтобы предварительно выделить минимальную необходимую память заранее для ускорения вещей немного. Вы закончите с новой строкой, которая, вероятно, будет короче, но это поднимает тот же объем памяти, но Вы избежите перераспределений.
РЕДАКТИРОВАНИЕ: В зависимости от Вашей ситуации это может подвергнуться меньше служебному, чем смешивающиеся символы вокруг.
необходимо попробовать разные подходы и видеть то, что является лучшим для Вас: у Вас не могло бы быть проблем производительности вообще.
Для обрезки используйте алгоритмы повышения строки :
#include <boost/algorithm/string.hpp>
using namespace std;
using namespace boost;
// ...
string str1(" hello world! ");
trim(str1); // str1 == "hello world!"