{"id":409,"date":"2018-06-26T00:03:58","date_gmt":"2018-06-25T21:03:58","guid":{"rendered":"http:\/\/www.scozturk.com\/?p=409"},"modified":"2025-08-29T07:26:29","modified_gmt":"2025-08-29T07:26:29","slug":"ruby-iii-basit-string-ve-dizgi-islemleri","status":"publish","type":"post","link":"http:\/\/18.193.70.38\/?p=409&lang=tr","title":{"rendered":"Ruby &#8211; III &#8211; Basit String ve Dizgi \u0130\u015flemleri"},"content":{"rendered":"<p><em><strong>Giri\u015f<\/strong><\/em><br \/>\nBu yaz\u0131mda <em>Ruby<\/em> ile basit string ve dizgi i\u015flemlerinin nas\u0131l yap\u0131labilece\u011fini g\u00f6rece\u011fiz. Bir\u00e7ok programlama diline g\u00f6re olduk\u00e7a basit.<\/p>\n<p><em><strong>Ayra\u00e7larla Ayr\u0131lm\u0131\u015f Stringleri Par\u00e7alamak<\/strong><\/em><br \/>\n\u00d6rne\u011fin \u015fu veriyi i\u00e7eren bir stringimiz olsun:<\/p>\n<p><code>merhaba,d\u00fcnya,ben,ruby,programlama,yap\u0131yorum<\/code><\/p>\n<p>Bu stringi &#8220;,&#8221; ayrac\u0131yla ay\u0131r\u0131p a\u015fa\u011f\u0131daki gibi kelime kelime ekrana basal\u0131m:<\/p>\n<p><code>merhaba<br \/>\nd\u00fcnya<br \/>\nben<br \/>\nruby<br \/>\nprogramlama<br \/>\nyap\u0131yorum<\/code><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Par\u00e7alanacak string\nparcalanacak = &quot;merhaba,d\u00fcnya,ben,ruby,programlama,yap\u0131yorum&quot;\n\n# ,'den ay\u0131r ve diziye ay\nkelime_dizisi = parcalanacak.split(&quot;,&quot;)\n\n# Dizideki her bir giri\u015f i\u00e7in giri\u015fi ekrana yazd\u0131r\nkelime_dizisi.each do |kelime|\n    puts kelime\nend\n<\/pre>\n<p>Hmm, bir de ekrana basarken her kelimenin ba\u015f harfini b\u00fcy\u00fck yapal\u0131m:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Par\u00e7alanacak string\nparcalanacak = &quot;merhaba,d\u00fcnya,ben,ruby,programlama,yap\u0131yorum&quot;\n\n# ,'den ay\u0131r ve diziye ay\nkelime_dizisi = parcalanacak.split(&quot;,&quot;)\n\n# Dizideki her bir giri\u015f i\u00e7in giri\u015fi ekrana yazd\u0131r\nkelime_dizisi.each do |kelime|\n    puts kelime.capitalize\nend\n<\/pre>\n<p>Hmm, bir de bir \u00e7\u0131lg\u0131nl\u0131k yap\u0131p b\u00fct\u00fcn karakterleri b\u00fcy\u00fck harf yazd\u0131ral\u0131m:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Par\u00e7alanacak string\nparcalanacak = &quot;merhaba,d\u00fcnya,ben,ruby,programlama,yap\u0131yorum&quot;\n\n# ,'den ay\u0131r ve diziye ay\nkelime_dizisi = parcalanacak.split(&quot;,&quot;)\n\n# Dizideki her bir giri\u015f i\u00e7in giri\u015fi ekrana yazd\u0131r\nkelime_dizisi.each do |kelime|\n    puts kelime.upcase\nend\n<\/pre>\n<p><em><strong>String&#8217;e String Eklemek<\/strong><\/em><br \/>\nBir stringe bir string eklemek i\u00e7in a\u015fa\u011f\u0131daki kodu kullanabiliriz:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Yazi tan\u0131mlar\u0131\nyazi1 = &quot;Merhaba d\u00fcnya!&quot;\nyazi2 = &quot;Ben Ruby programlama yap\u0131yorum!!!&quot;\n\n# Birle\u015ftirilmi\u015f yazi\nyazi3 = yazi1 + &quot; &quot; + yazi2\n\n# Ekrana bast\u0131ral\u0131m\nputs yazi3\n<\/pre>\n<p><em><strong>String&#8217;den Karakter Silmek<\/strong><\/em><br \/>\nBir stringin son karakterini silmek i\u00e7in:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Yazi tan\u0131mlar\u0131\nyazi1 = &quot;Merhaba d\u00fcnya!&quot;\nyazi2 = &quot;Ben Ruby programlama yap\u0131yorum!!!&quot;\n\n# Birle\u015ftirilmi\u015f yazi\nyazi3 = yazi1 + &quot; &quot; + yazi2\n\n# Ekrana bast\u0131ral\u0131m\nputs yazi3\n\n# Son karakteri silelim\nputs yazi3.chop!\n<\/pre>\n<p>Yaz\u0131n\u0131n sonundaki bir new line (\\n) veya carriage return (\\r) gizli karakterlerini silmek i\u00e7in:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Yazi tan\u0131mlar\u0131\nyazi1 = &quot;Merhaba d\u00fcnya!\\n&quot;\nyazi2 = &quot;Ben Ruby programlama yap\u0131yorum!!!\\r\\n&quot;\n\n# \u0130lk hallerini ekrana basal\u0131m\nputs yazi1 + yazi2 + &quot;Sat\u0131rlara dikkat!&quot;\n\n#  Newline ve CarriageReturn silelim\nyazi1 = yazi1.chomp\nyazi2 = yazi2.chomp \n\n# Yeni hallerini ekrana basal\u0131m\nputs yazi1 + yazi2 + &quot;Sat\u0131rlara dikkat!&quot;\n<\/pre>\n<p>Sondan 5 karakteri de silebiliriz:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Yazi tan\u0131mlar\u0131\nyazi1 = &quot;Merhaba d\u00fcnya!&quot;\nyazi2 = &quot;Ben Ruby programlama yap\u0131yorum!!!&quot;\n\n# Sondan 2 karakteri silelim\n5.times do yazi2.chop! end\n\n# \u0130lk hallerini ekrana basal\u0131m\nputs yazi1 + yazi2\n<\/pre>\n<p>Yaz\u0131 dizisi i\u00e7erisindeki &#8220;Ruby&#8221; kelimesini silelim:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Yazi tan\u0131mlar\u0131\nyazi1 = &quot;Merhaba d\u00fcnya!&quot;\nyazi2 = &quot;Ben Ruby programlama yap\u0131yorum!!!&quot;\n\n# Ruby kelimesini silelim\nyazi2 = yazi2.sub(&quot;Ruby &quot;, &quot;&quot;)\n\n# \u0130lk hallerini ekrana basal\u0131m\nputs yazi1 + yazi2\n<\/pre>\n<p>B\u00fct\u00fcn \u00fcnlem i\u015faretlerini silelim:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Yazi tan\u0131mlar\u0131\nyazi1 = &quot;Merhaba d\u00fcnya!&quot;\nyazi2 = &quot;Ben Ruby programlama yap\u0131yorum!!!&quot;\n\n# Ruby kelimesini silelim\nyazi2 = yazi2.gsub(&quot;!&quot;, &quot;&quot;)\n\n# \u0130lk hallerini ekrana basal\u0131m\nputs yazi1 + yazi2\n<\/pre>\n<p><em><strong>Array&#8217;den Bir Hane Se\u00e7mek<\/strong><\/em><br \/>\nEn ba\u015ftaki \u00f6rnekte:<\/p>\n<p><code>merhaba,d\u00fcnya,ben,ruby,programlama,yap\u0131yorum<\/code><\/p>\n<p>yaz\u0131s\u0131n\u0131 virg\u00fcllerden par\u00e7alayarak bir dizi elde etmi\u015ftik. \u015eimdi bu dizinin sadece 3. eleman\u0131n\u0131 ekrana yazd\u0131ral\u0131m:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Par\u00e7alanacak string\nparcalanacak = &quot;merhaba,d\u00fcnya,ben,ruby,programlama,yap\u0131yorum&quot;\n\n# ,'den ay\u0131r ve diziye ay\nkelime_dizisi = parcalanacak.split(&quot;,&quot;)\n\n# 3. giri\u015fi ekrana yazd\u0131r\nputs kelime_dizisi&#x5B;2]\n<\/pre>\n<p>3. ve 6. giri\u015fi de\u011fi\u015ftirip tamam\u0131n\u0131 ekrana bast\u0131ral\u0131m:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Par\u00e7alanacak string\nparcalanacak = &quot;merhaba,d\u00fcnya,ben,ruby,programlama,yap\u0131yorum&quot;\n\n# ,'den ay\u0131r ve diziye ay\nkelime_dizisi = parcalanacak.split(&quot;,&quot;)\n\n# 3. ve 6. giri\u015fleri de\u011fi\u015ftir\nkelime_dizisi&#x5B;2]=&quot;biz&quot;\nkelime_dizisi&#x5B;5]=&quot;yap\u0131yoruz&quot;\n\n# Dizideki her bir giri\u015f i\u00e7in giri\u015fi ekrana yazd\u0131r\nkelime_dizisi.each do |kelime|\n    puts kelime\nend\n<\/pre>\n<p><em><strong>Array&#8217;den Bir Hane Silmek<\/strong><\/em><br \/>\nBir \u00f6nceki \u00f6rnekte &#8220;Ruby&#8221; yaz\u0131s\u0131n\u0131n bulundu\u011fu giri\u015fi silip ekrana basal\u0131m:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Par\u00e7alanacak string\nparcalanacak = &quot;merhaba,d\u00fcnya,ben,ruby,programlama,yap\u0131yorum&quot;\n\n# ,'den ay\u0131r ve diziye ay\nkelime_dizisi = parcalanacak.split(&quot;,&quot;)\n\n# &quot;Ruby&quot; nin bulundu\u011fu giri\u015fi sil\nkelime_dizisi.delete_at(3)\n\n# Dizideki her bir giri\u015f i\u00e7in giri\u015fi ekrana yazd\u0131r\nkelime_dizisi.each do |kelime|\n    puts kelime\nend\n<\/pre>\n<p>4. konumda oldu\u011funu elle belirterek sildik, \u015fimdi de dinamik olarak bularak silelim:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# K\u00fct\u00fcphaneleri y\u00fckle\nrequire 'rubygems'\n\n# Par\u00e7alanacak string\nparcalanacak = &quot;merhaba,d\u00fcnya,ben,ruby,programlama,yap\u0131yorum&quot;\n\n# ,'den ay\u0131r ve diziye ay\nkelime_dizisi = parcalanacak.split(&quot;,&quot;)\n\n# &quot;ruby&quot; nin bulundu\u011fu giri\u015fi sil\nkelime_dizisi.delete(&quot;ruby&quot;)\n\n# Dizideki her bir giri\u015f i\u00e7in giri\u015fi ekrana yazd\u0131r\nkelime_dizisi.each do |kelime|\n    puts kelime\nend\n<\/pre>\n<p>Ba\u015fka programlama dillerine hakimseniz bu kadar basit olmas\u0131n\u0131 beklemiyordunuz herhalde?<\/p>\n<p><em><strong>Sonu\u00e7<\/strong><\/em><br \/>\nUmar\u0131m i\u015finize yarar, iyi kodlamalar!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Giri\u015f Bu yaz\u0131mda Ruby ile basit string ve dizgi i\u015flemlerinin nas\u0131l yap\u0131labilece\u011fini g\u00f6rece\u011fiz. Bir\u00e7ok programlama diline g\u00f6re olduk\u00e7a basit. Ayra\u00e7larla Ayr\u0131lm\u0131\u015f Stringleri Par\u00e7alamak \u00d6rne\u011fin \u015fu veriyi i\u00e7eren bir&#8230;<\/p>\n","protected":false},"author":1,"featured_media":428,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[225,237,191],"tags":[],"class_list":["post-409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programlama-tr","category-ruby-tr","category-teknik-tr"],"_links":{"self":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=409"}],"version-history":[{"count":1,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/409\/revisions"}],"predecessor-version":[{"id":1197,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/409\/revisions\/1197"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/media\/428"}],"wp:attachment":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=409"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}