Ruby asigură un set puternic de operatori pentru string-uri, cuprinzând:
12345
Expresiile regulare sunt un tip fundamental de date, precum numerele, textele și masivele?
2
Alegeți secvențele de escape ce pot apărea într-un literal string încadrat între ghilimele simple (apostroafe):
12
Ce valoare întoarce expresia:
'a\b' == 'a\\b'
true
false
1
Care din următoarele variante definește corect un string folosind mai multe linii de cod, string care are o SINGURĂ linie?
'Acest literal string \
este corect'
'Acest literal string'\
'este corect.'
Expresia:
'abc''def'
este validă?
Literalii string încadrați de ghilimele duble au mai multe secvențe escape disponibile decât cei încadrați între ghilimele simple.
Interpolarea în stringuri se poate face și în cazul literalilor încadrați între ghilimele simple.
Codul următor face corect interpolarea?
$formula_salut = 'salutare'
"#$formula_salut lume"
Pentru cazul când este nevoie de formatare a valorilor interpolate, în Ruby se poate folosi:
sprintf("pi este aproximativ %.4f", Math::PI)
"pi este aproximativ %.4f" % Math::PI
printf("pi este aproximativ %.4f", Math::PI)
"%s: %f" % ["pi", Math::PI]
1234
Câte rânduri are următorul string?
"Această carte
are 30 de pagini\
cu tot cu coperți"
Stringurile adiacente se concatenează automat, chiar și dacă au spații între ele?
Alegeți variantele corecte pentru a defini un caracter Unicode într-un string încadrat între ghilimele duble:
"\u1023"
"\u{AB0C}"
"\u{AB}"
"\uAB0C"
"\u23"
Expresiile de mai jos sunt toate echivalente?
"\u{AB2}"
"\u0AB2"
"\u{0AB2}"
"\u{0A B2}"
"\2"
"\02"
"\002"
Expresia de mai jos întoarce:
"\x0A" == "\xA"
Cel mai mare cod Unicode este:
"\u{ffff}"
"\u{ffffff}"
"\u{10ffff}"
Alegeți varianta corectă:
125
Alegeți definițiile corecte de stringuri:
%q|cuvinte|
%q cuvinte
%q-aasdfasdf-
%q!cuvinte\!multe!
%qacuvintea
%q{cuvinte}, %q[cuvinte], %q(cuvinte), %q<cuvinte>
1245
%(O paranteza ( se folosește la deschidere.)
%'Un apostrof \' se folosește la deschidere.'
%<<book><title>Titlu carte</title></book>>
%((1+(2*3)) = #{(1+(2*3))})
124
Alegeți sintaxele corecte pentru definirea unui „here document”:
document = <<HERE
Textul propriu-zis
HERE
document = <<HERE # inceput de definire
document = <<-HERE
document = <<345
345
HERE # final de definire
document = <<alabala
alabala
12346
Alegeți sintaxa corectă pentru a rula o comandă „backtick”:
listing = `#{listcmd}`
`ls`
%x[ls]
listing = Kernel.`("ls")
%X[ls]
Codul de mai jos afișează la fiecare iterație același lucru?
5.times { puts "aaa".object_id }
5.times { puts 859.object_id }
Un string se poate defini prin String.new ?
În Ruby există o clasă pentru reprezentarea caracterelor separate.
Alegeți variantele corecte pentru definirea unui string de 1 caracter:
??
?€
?"
?""
?\u20AC
?A
Alegeți varianta corectă pentru concatenarea a două stringuri:
"partea 1 " + "2"
"partea 1 " + "partea 2"
"partea 1 " "2"
"partea 1 " + 2
Interpolarea este o metodă preferată față de concatenarea stringurilor?
Se dă variabila tip string „x”. Următoarele două linii de cod sunt echivalente?
puts x << " abc"
puts x + " abc"
Codul de mai jos afișează:
a = 0; "#{a=a+1} " * 3
În compararea stringurilor se aplică:
3
Ruby cunoaște diferența între literele mici și mari:
Cu ajutorul operatorului [] se poate:
Alegeți diferența corectă între Ruby 1.8 și Ruby 1.9:
Dacă în expresia string[n], n este în afara domeniului:
Dacă s = "abcd", alegeți expresiile acceptate:
s[0] = ?X
s[4] = ?X
s[3] = ?X
s[s.length] = ?X
s[-1] = ?X
Dându-se un string „s”, alegeți variantele acceptate:
s[-1] += "ab"
s[-1] = nil
s[-1] = ""
s[-1] = "ab"
134
Dacă s = "hello world", atunci s[2, 4] întoarce:
"ell"
"llo "
"ello"
Dacă s = "hello world", atunci s[0, -1]:
"hello world"
"h"
nil
În Ruby, la finalul unui string:
4
În Ruby, în cazul unei operațiuni string[<plajă indecși>] = "<text>"
14
Dacă s = "abcdefghi", atunci expresia de mai jos întoarce:
s[2,3] == s[2..3]
s["def"]
"def"
Dacă s = "abcdefghi", atunci expresia de mai jos:
s[/[aeiou]/] = '*'
În Ruby 1.9:
În Ruby 1.9, în cazul stringurilor, pentru optimizare este preferat operatorul „[]” față de metoda „each_char”.
Alegeți variantele corecte:
123
13
Stringurile introduse manual într-un terminal „cmd” în Windows au encodarea:
Encodarea unui literal String este întotdeauna aceea a fișierului sursă în care este definit.
Dacă într-un literal String avem o secvență "\u", atunci encodarea sa va fi:
În Ruby există encodarea US-ASCII (7-bit ASCII).
String.force_encoding modifică efectiv caracterele stringului?
String.encode modifică efectiv caracterele stringului?
String.encode, dacă noua encodare nu poate reprezenta un anumit caracter:
Clasa „Encoding” are o interfață API bogată.