Ruby中的chop和chomp用法辨析

2021-06-28 19:16:49 字數 1216 閱讀 1373

還沒開始系統性的學習ruby,最近在看metasploit框架的exploit會涉及到ruby指令碼,也就硬著頭皮一遍查閱資料一遍做些筆記吧。

ruby字串中存在chop和chomp的內建函式。我在中得到的關於ruby字串chop和chomp的用法介紹如下:

str.chomp

從字串末尾移除記錄分隔符($/),通常是 \n。如果沒有記錄分隔符,則不進行任何操作。

str.chomp!

與 chomp 相同,但是 str 會發生變化並返回。

str.chop

移除 str 中的最後乙個字元。

str.chop!

與 chop 相同,但是 str 會發生變化並返回。

chomp和chop的區別:

chomp:去掉字串末尾的\n或\r

chop:去掉字串末尾的最後乙個字元,不管是\n\r還是普通字元

"hello".chomp #=> "hello"

"hello\n".chomp #=> "hello"

"hello\r\n".chomp #=> "hello"

"hello\n\r".chomp #=> "hello\n"

"hello\r".chomp #=> "hello"

"hello".chomp("llo") #=> "he"

"string\r\n".chop #=> "string"

"string\n\r".chop #=> "string\n"

"string\n".chop #=> "string"

"string".chop #=> "strin"

我在本機逐個嘗試上面的字串,並且輸出,得到如下所示:

首先,可以看到print是不輸出換行符的(不會自動換行),但是會解析雙引號中的轉義字元,可以看到print輸出了字串中的換行符\n和回車符\r。我之前有點迷惑的是「\r\n」,「\n\r」這兩個前後順序不同時,chop和chomp函式是如何處理的。從執行的結果看,當字串最後面跟的是「\r\n」時,」\r\n」都會被去掉,而當字串最後面跟的是」\n\r」時,只會去掉回車符。好吧,總算是明白了。

Perl中chomp和chop的用法和區別介紹

一 chomp是用來刪除換行符。usr bin perl a abcdef n chomp a print a 結果 briup localhost desktop d1.pl abcdef briup localhost desktop more d1.pl 二 chop是用來刪除最後乙個字元。u...

Perl中chomp和chop的區別介紹

chomp是用來刪除換行符.複製 如下 usr bin perl c abcde chomp c print c n root ak perl a.pl abcde chop是用來刪除最後乙個字元.複製 如下 usr bin perl c abcde chop c print c n root ak...

ruby中的respond to和send的用法

如果使用 respond to?這個方法,就可以實現判斷物件能否響應給定的訊息了,這樣即使obj不能響應talk,也不會使 產生錯誤退出,我們也可以應用 respond to?方法,根據物件的屬性,在程式執行時靈活的控制。obj object.new if obj.respond to?talk o...