К сожалению, такой сценарий плохо поддерживается Java 8 Stream API. Моя библиотека StreamEx добавляет несколько вспомогательных методов для работы с такими потоками: IntStreamEx.charsToString()
, IntStreamEx.codePointsToString()
и IntStreamEx.toCharArray()
. Также я представил примитивные коллекторы, такие как IntCollector
, которые могут помочь в сборе примитивных потоков каким-то нетривиальным способом.
Вот как ваша задача может быть решена с помощью библиотеки StreamEx:
String result = IntStreamEx.ofChars(s).filter(Character::isLetter).charsToString();
Или с кодовыми точками:
String result = IntStreamEx.ofCodePoints(s)
.filter(Character::isLetter)
.codePointsToString();
Я не эксперт по рубину, но я думаю, что вы могли бы сделать:
instance.send("a=", "value")
Можно также непосредственно получить доступ к переменным экземпляра объекта с помощью instance_variable_*
функции:
instance = Test_Class.new # => #<Test_Class:0x12b3b84>
# instance variables are lazily created after first use of setter,
# so for now instance variables list is empty:
instance.instance_variables # => []
instance.instance_variable_set(:@a, 123) # => 123
instance.a # => 123
instance.instance_variables # => ["@a"]
instance.instance_variable_get("@a") # => 123