zoukankan      html  css  js  c++  java
  • Ruby中的chop和chomp用法辨析

          还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧。

          Ruby字符串中存在chop和chomp的内置函数。我在http://www.w3cschool.cc/ruby/ruby-string.html中得到的关于Ruby字符串chop和chomp的用法介绍如下:

    
    str.chomp
    从字符串末尾移除记录分隔符($/),通常是 
    。如果没有记录分隔符,则不进行任何操作。
    str.chomp!
    与 chomp 相同,但是 str 会发生变化并返回。
    str.chop
    移除 str 中的最后一个字符。
    str.chop!
    与 chop 相同,但是 str 会发生变化并返回。

          单从这几句话,还是有些不明白(貌似借鉴于perl语言中的chop和chomp函数的用法),然后百度了一下,我在http://blog.chinaunix.net/uid-20691105-id-1568659.html得到如下内容:

    
    chomp和chop的区别:
    chomp:去掉字符串末尾的
    或
    chop:去掉字符串末尾的最后一个字符,不管是
    
    还是普通字符
    "hello".chomp            #=> "hello"
       "hello
    ".chomp          #=> "hello"
       "hello
    ".chomp        #=> "hello"
       "hello
    
    ".chomp        #=> "hello
    "
       "hello
    ".chomp          #=> "hello"
       "hello".chomp("llo")     #=> "he"
    "string
    ".chop   #=> "string"
       "string
    
    ".chop   #=> "string
    "
       "string
    ".chop     #=> "string"
       "string".chop       #=> "strin"

          我在本机逐个尝试上面的字符串,并且输出,得到如下所示:

    ruby chop chomp

          首先,可以看到print是不输出换行符的(不会自动换行),但是会解析双引号中的转义字符,可以看到print输出了字符串中的换行符 和回车符 。我之前有点迷惑的是“ ”,“ ”这两个前后顺序不同时,chop和chomp函数是如何处理的。从运行的结果看,当字符串最后面跟的是“ ”时,” ”都会被去掉,而当字符串最后面跟的是” ”时,只会去掉回车符。好吧,总算是明白了。

  • 相关阅读:
    Redis 客户端
    Redis 数据库
    Redis 对象
    Redis 跳跃表
    Redis 字典
    Redis 链表实现
    Redis 事务
    winform,自定义文本框控件 实现文本框验证加水印功能
    WinForm中,每隔一段时间(参数)调用一次函数(使用定时器)
    GMap.Net 实现离线地图
  • 原文地址:https://www.cnblogs.com/hiccup/p/5424004.html
Copyright © 2011-2022 走看看