从字符串中提取charcarters

时间:2016-10-02 10:45:00

标签: ruby

我正在尝试创建一个小程序,人们可以用化学符号改变他们的名字(The Breaking bad way' s。)

我可以得到两个首字母,但我不知道如何分开其余的字母:

puts "Please enter your name"
    name = gets.chomp
    first_letters = name[0,1]
    last_letters = name  - first_letters #I know it's wrong but here is the idea of what i want to do. Hope it's clear...

然后我将显示与第一个字母对应的图像的名称。

if first_letters.include? "br"
  puts "Br" + last_letters
end
if first_letters.include? "ba"
  puts "Ba" + last_letters
end

如何隔离最后的字母?

由于

2 个答案:

答案 0 :(得分:1)

你快到了:

name[2..-1]

name[2..name.length]

或者如果你想采用正则表达方式(这里不需要那么多的复杂性)

match = name.match(/(.{2})(.*)/)
first_letters = match[1]
last_letters = match[2]

现在,在所有变体中,您可能希望添加一些名称具有足够长度的检查。

答案 1 :(得分:0)

first, last = "String".scan(/\A(..)(.*)\z/).first 
#⇒ ["St", "ring"]

或简单地说:

first, last = "String".split(/(?<=\A..)/)

或者,如果你不知道第一个字母是什么:​​

def get_rid_of_first(first)
  "String"[/(?<=\A#{Regexp.escape(first)}).*\z/]
end
get_rid_of_first("St")
#⇒ "ring"