Ruby 特殊的分隔输入

转载 2007年09月25日 22:19:00

1. %Q 和 %q [输入字符串]

一般情况下,字符串常量是包含在 " " 和 ' ' 两个符号中间的,也就是双引号和单引号:

  1. irb(main):003:0> str = "GemBlog beta 0.4"
  2. => "GemBlog beta 0.4"
  3. irb(main):004:0> str1 = 'Hi there!'
  4. => "Hi there!"

双引号、单引号,与其对应的就是%Q和%q,虽然使用引号来包含字符串已经足够,但是在某些情况下,还是应%Q和%q方便,比如字符串中含有单双引号,还有字符串跨越多行的时候:

  1. irb(main):012:0> str = %q[ Tom says: "What's going on?" ]
  2. => " Tom says: /"What's going on?/" "
  3.  
  4. str = %Q/  Hello #{user.name}
  5.                         Welcome to GemBlog!
  6.                                                 galeki
  7.               /

 

 2. %W 和 %w [输入字符串数组]

很多时候,需要我们创建一个包含很多项的数组,而数组的每一项都是一个字符串,比如一个班级内所有的人名的数组,或者是一年12月的缩写数组等等,如果采用常规的创建方法:

  1. irb(main):022:0> month = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
  2. => ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

天,要打那么多的单引号,还有逗号,如果用%w就简单的多:

  1. irb(main):023:0> month = %w(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
  2. => ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

仅仅需要把每一项用空格分隔,再包含在%w中就可以了。

%W和%w的区别和%Q和%q一样,一个代表双引号包含,一个代表单引号包含。

3. %r [正则表达式]

正则表达式一般以 re =/pattern/ 来创建,%r是另一种创建方式,优点是可以减少“/”对正则表达式本身的混淆,而且可以看情况选择%r后的分隔符,比如要想创建匹配linux某个路径的正则"/usr/local/bin/",用常规的方法,由于路径分隔符和“/”相同,就得对“/“进行转义:

  1. irb(main):030:0> re = ///usr//local//bin///
  2. => ///usr//local//bin///

这样写起来又麻烦,可读性也不好,如果用%r就方便多了:

  1. irb(main):027:0> re = %r{/usr/local/bin/}
  2. => ///usr//local//bin///

 

 4. %x [Shell命令]

 在ruby中执行shell命令很简单,只要把要执行的命令包含在反引号"`"中就行,但是反引号和单引号之间容易混淆,而且,有时命令本身也会用到反引号,这个时候,用%x就最好了:

  1. irb(main):036:0> %x{echo I am `whoami`, now is `date`}
  2. => "I am galeki, now is 2007/04/14 14:25/n"

 

 

ruby特殊的分割输入

1. %Q 和 %q [输入字符串] 双引号、单引号,与其对应的就是%Q和%q,虽然使用引号来包含字符串已经足够,但是在某些情况下,还是应%Q和%q方便,比如字符串中含有单双引号,还有字符串跨越多行...

Java中字符串的分隔问题 "|" "." "*" "_" 特殊符号解决方案

StringTokenizer(字符串分隔解析类型)java.util.StringTokenizer  功效:将字符串以定界符为界,分析为一个个的token(可理解为单词),定界符可以自己指定...

[Ruby] 关于字符串中特殊字符处理\n\t\r 的方法

1.chomp和chomp! 去掉字符串尾部的\n或\r(每次只能处理最后一个字符)         2.chop 和chop! 去掉字符串最后面的一个字符        3.strip和stri...

输入个数不限的数字,以逗号为分隔,以回车键为结束,排序后以4个数每行输出

/* 输入个数不限的数字,以逗号为分隔,以回车键为结束,数字大小在-32768-32767之间。从小到大排序后以4个数每行输出 如: 输入:12,34,-12,23,123,56,-9,789 输出:...

从屏幕输入一行数字,以空格分隔,如何分别存放到数组中

要求: 在屏幕中,输入一行数字,以空格分隔,其中每个数字的长度不一定一样,要求将这些数字分别存放到数组中。 例如:  输入:1  123 1234 22 345  25 5 对应的数组的值应该...

Android仿QQ输入法词根联想AutoCompleteTextView及多提示项群发邮件分隔录入MultiAutoCompleteTextView

Android仿QQ输入法词根联想AutoCompleteTextView及多提示项群发邮件分隔录入MultiAutoCompleteTextView怎么这么长,看着这么高大上呢。。其实就是这个效果显...
  • xyzz609
  • xyzz609
  • 2016年07月20日 23:29
  • 422

EditTextView 带空格分隔的输入(电话号码,银行卡)

EditTextView 带空格分隔的输入(电话号码,银行卡)标签(空格分隔): Android电话号码输入框需求: 三位,七位后有空格 删除倒数第四,第八位会将空格也删除 使用TextWatcher...

如何在ChemDraw中输入化学式分隔点

ChemDraw最实用的化学结构绘图软件,在绘制化学结构时,离不开给化学结构标记原子名称,有时还需要插入分隔点,本教程以下图给出的化学结构为例,讲解ChemDraw中如何输入化学式分隔点。...

对EditText拓展完成输入内容分隔处理

今天没有时间看源码了。就写一篇今天的工作记录吧,为了解决一个小功能,就对Android的EditText作了功能上的拓展。      首先说下遇到的需求,在EditText中对用户输入的内容...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ruby 特殊的分隔输入
举报原因:
原因补充:

(最多只允许输入30个字)