在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Ruby/ Ruby字符串
Ruby for循環(huán)
Ruby教程
Ruby文件I/O
Ruby迭代器
Ruby哈希
Ruby日期時間
Ruby類和對象
Ruby快速入門(30分鐘)
Ruby redo/retry語句
Ruby模塊
Ruby解析XML(REXML)
Ruby if-else語句
Ruby的功能特點
Ruby break/next語句
Ruby方法
Ruby是什么?
Ruby與Python比較
Ruby Case語句
Ruby目錄
Ruby范圍
Ruby異常
Ruby套接字編程(Socket)
Ruby字符串
Ruby安裝配置
Ruby運算符
Ruby while/do...while循環(huán)語句
Ruby第一個HelloWorld程序
Ruby until循環(huán)語句
Ruby注釋
Ruby塊
Ruby數(shù)據(jù)類型
Ruby面向?qū)ο?/span>
Ruby正則表達(dá)式
Ruby數(shù)組
Ruby變量
Ruby多線程編程

Ruby字符串

Ruby字符串對象保存并操縱任意字節(jié)序列,通常用于表示字符。 它們是使用String:::new創(chuàng)建或作為字面量。

引用

Ruby字符串文字包含在單引號和雙引號內(nèi)。

示例:

#!/usr/bin/ruby   

puts 'Hello everyone'   
puts "Hello everyone"

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby string-quotes.rb
Hello everyone
Hello everyone
這是一個字符串

F:\worksp\ruby>

訪問字符串元素

在方括號[]的幫助下,可以訪問Ruby字符串中不同部分的元素。在方括號內(nèi)寫入索引或字符串。

示例:

#!/usr/bin/ruby   

msg = "This tutorial is from Yiibai.com."   

puts msg["Yiibai"]   
puts msg["tutorial"]   

puts msg[0]   

puts msg[0, 2]   
puts msg[0..19]   
puts msg[0, msg.length]   
puts msg[-3]

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby string-elements.rb
Yiibai
tutorial
T
Th
This tutorial is fro
This tutorial is from Yiibai.com.
o

F:\worksp\ruby>

多行字符串

在Ruby語言中編寫多行字符串非常簡單。下面是顯示打印多行字符串的三種方式。

  • 字符串可以寫在雙引號內(nèi)。
  • 使用字符,字符串包含在/字符內(nèi)。
  • heredoc語法中,使用<<并且字符串包含在單詞STRING內(nèi)。

示例代碼:

#!/usr/bin/ruby   
puts "   
A   
AB   
ABC   
ABCD"   

puts %/   
A   
AB   
ABC   
ABCD/   

puts <<STRING
A   
AB   
ABC   
ABCD   
STRING

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby string-multiline.rb

A
AB
ABC
ABCD

A
AB
ABC
ABCD
A
AB
ABC
ABCD

F:\worksp\ruby>

變量插值

Ruby變量插值是使用字符串文字中的值替換變量。變量名稱放在字符串文字中的#{}字符之間。

示例代碼:

#!/usr/bin/ruby   

country = "China"   
capital = "Beijing"   

puts "#{capital} is the capital of #{country}."

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby string-variable-interpo.rb
Beijing is the capital of China.

F:\worksp\ruby>

連接字符串

Ruby連接字符串是要使用多個字符串來創(chuàng)建一個字符串??梢酝ㄟ^連接多個字符串來形成單個字符串。

將Ruby字符串連接成單個字符串有四種方法:

  • 在每個字符串之間使用加(+)號。
  • 在每個字符串之間使用單個空格。
  • 在每個字符串之間使用<<符號。
  • 在字符串之間使用concat方法。

示例

#!/usr/bin/ruby   

string = "This is Ruby Tutorial" + " from Yiibai." + " Wish you all good luck."   
puts string   

string = "This is Ruby Tutorial" " from Yiibai." " Wish you all good luck."   
puts string   

string = "This is Ruby Tutorial" << " from Yiibai." << " Wish you all good luck."   
puts string   

string = "This is Ruby Tutorial".concat(" from Yiibai.").concat(" Wish you all good luck.")   
puts string

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby string-concatenating.rb
This is Ruby Tutorial from Yiibai. Wish you all good luck.
This is Ruby Tutorial from Yiibai. Wish you all good luck.
This is Ruby Tutorial from Yiibai. Wish you all good luck.
This is Ruby Tutorial from Yiibai. Wish you all good luck.

F:\worksp\ruby>

凍結(jié)字符串

在大多數(shù)編程語言中,字符串是不可變的?,F(xiàn)有的字符串不能修改,只能創(chuàng)建一個新的字符串。

在Ruby中,默認(rèn)的字符串是可變的。為了使它們不可修改,可以使用freeze方法。

示例

#!/usr/bin/ruby   

str = "Original string"   
str << " is modified "   
str << "is again modified"   

puts str   

str.freeze   

## 試著去修改看看
str << "is again modified"   

puts str

#str << "And here modification will be failed after using freeze method"

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby string-freezing.rb
Original string is modified is again modified
Original string is modified is again modified

F:\worksp\ruby>ruby string-freezing.rb
Original string is modified is again modified
string-freezing.rb:11:in `<main>': can't modify frozen String (RuntimeError)

F:\worksp\ruby>

比較字符串

Ruby字符串可以使用以下三個運算符進行比較:

  • 使用==運算符:返回truefalse
  • 使用 eql? 運算符:返回truefalse
  • 使用casecmp方法:如果匹配則返回0,如果不匹配則返回1。

示例

#!/usr/bin/ruby

puts "abc" == "abc"   
puts "as ab" == "ab ab"   
puts "23" == "32"   

puts "ttt".eql? "ttt"   
puts "12".eql? "12"   

puts "Java".casecmp "Java"   
puts "Java".casecmp "java"   
puts "Java".casecmp "ja"

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby string-comparing.rb
true
false
false
true
true
0
0
1

F:\worksp\ruby>

上一篇:Ruby文件I/O下一篇:Ruby解析XML(REXML)