Zakrey

Witam

Chce podzielić jeden ciąg znaków na dwa osobne tz. string1 => “imię nazwisko” na string1 => “imie” string2 => “nazwisko”
wymyśliłem sobie ze będę iterował kolejne znaki “wrzucał” do string1 a gdy natrafie na spacje to przerwe i dalszą częsc stringa dodam do string2

jednak juz na samym poczatku niemoge sobie poradzis z zakesem pętli for

[code]

string = “jan nowak”

for i in 0…string.length

t1 << string[i].chr

end[/code]
wywala mi błąd:

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.chr

natomiast gdy sprawdzam czy poprawnie wrzuca wybrany znak z ciągu

[code]

string = “jan nowak”

for i in 0…string.length

t1 << string[2].chr

end[/code]
działa poprawnie #=> nnnnnnnnnn

wydaje mi sie ze inkrementiowana wartość “i” nie jest typu integer prze ten nieelegancki zakres 0…string.length ale nie wiem jak to poprawić.

Prosze o rade ewentualnie podpowiedz do jakiegoś alternatywnego rozwiązania

pozdrawiam

“Imie Nazwisko”.split Polecam http://www.ruby-doc.org/core/classes/String.html

wow

juz jezyki duzo duzo starsze maja takie mechanizmy jak split. Jak nie masz podstaw z innych jezykow (nawykow) czy jak to inaczej nazwac to dobrze od jakiejs dobrej ksiazki zaczac. Nie ma co kola na nowo wymyslac.

a to co chciales to mozesz zrobic jakos tak np

string = ‘ala ma kota’

string.each do |a|
a == ’ ’ ? bla bla bla : bar bar bar
end

czy cos …

Dzieki za rade :slight_smile: