亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問該如何在Ruby中使用字符串方法?

請問該如何在Ruby中使用字符串方法?

慕娘9325324 2019-12-11 13:09:07
如何在Ruby中使用字符串方法
查看完整描述

4 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

正如你所知道的,ruby字符串被稱為一流的對象,它使用了大量的查詢和操作方法。一個最基本的字符串操作是把一個字符串分割成多個子字符串。如果你有一個字符串,如“foo, bar, baz”而你希望的是這樣三個字符串“foo”,“bar”,“baz”。那么字符串類的split方法就可以幫助你。 “split”的基本用法 split方法的最基本用法分裂一個由單獨字符或字符的靜態序列組成的字符串。如果split的第一個變量是一個字符串,那么這個字符串中字符就會被當作一個字符串分隔符使用。但是在逗號分隔的數據中,逗號用來分隔數據,這里的每個字符串成分都被用來分隔數據。 #!/usr/bin/env rubystr =foo,bar,bazputsstr. split(,)$ ./1.rbfoobarbaz通過正則表達式來增加靈活性 當然,還有一些更容易的方法可以分隔字符串。正則表達式可以為split方法增加靈活性。這里再次拿“foo, bar, baz”。間隔在第一個逗號之后而不是第二個逗號。如果該字符串“,”被當成是分隔符,那么在“baz”字符串的開始處仍然會存在間隔。如果使用“,”字符串,它只與第一個逗號匹配,因為第二個逗號后面沒有間隔。其作用還是有限的。 解決這個問題的辦法是把正則表達式作為定界符的自變量,而不是使用字符串。正則表達式不僅可以匹配靜態序列的字符,對字符的不定量和可選字符都同樣起作用。 編寫正則表達式 為你的分隔符編寫一個正則表達式,第一步就是描述清楚什么是分隔符。在這種情況下,一個逗號后面可能存在一個或多個空格是合理的。這一正則表達式庫中存在兩個要素:逗號和可選的間隔。間隔會使用* (星號)量詞,它表示的意思是“零或更多”。任何在它之前的要素都會匹配零次或若干次。例如,正則表達式/ a * /將匹配序列零或更多“a”字符。 #!/usr/bin/env rubystr =foo, bar,bazputsstr. split( /, */ )$ ./2.rbfoobarbaz限制splits的數量 想象一個逗號分隔了這樣的字符串:“10,20,30,this is an arbitary string”。其格式是三個數字后面跟了一句評論。此評論可以包含任意的文本,包括帶有逗號的文本。要防止split分離文本這個文本,我們可以設置一個最大分裂列數。請注意,只有在任意文本的評論字符串處在表格最后一列時才管用。 為了限制splits的數量,字符串中數域的數量要作為split方法的第二個變量來發送。 #!/usr/bin/env rubystr =10,20,30,ten, twenty and thirtyputsstr. split( /, */, 4 )$ ./3.rb102030en, twentyandthirty了解其局限性 分裂法有一些局限性。以字符串“10,20, ‘bob, eve and mallory’,30”為例。預期字符是兩個數字,后跟一個引證串(可能包含逗號),然后是另一個數字。split不能正確分隔這個字符串的域。為了做到正確分隔,需要保持字符串掃描器處于開啟狀態,這樣一來它就會記得它有沒有在引證串內部。反之,如果掃描儀不在啟動狀態,就不能解決這樣的問題。


查看完整回答
反對 回復 2019-12-12
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

c中是strstr.
ruby 1.9.3中包含:
include? other_str → true or false click to toggle source
Returns true if str contains the given string or character.

"hello".include? "lo" #=> true
"hello".include? "ol" #=> false
"hello".include? ?h #=> true


查看完整回答
反對 回復 2019-12-12
  • 4 回答
  • 0 關注
  • 642 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號