删除rails中字符串中的前导和尾随双引号

时间:2016-03-22 07:02:16

标签: ruby-on-rails ruby ruby-on-rails-4

我想修剪一个字符串的前导和尾随引号,没有任何替换..我已经尝试过gsub ..但没有任何帮助..我想实现像。," hai"到海。

在Java中,我将使用如下。,

String a="\"hai";
String z=a.replace("\"", "");
System.out.println(z);

输出:

如何在rails中实现这一目标?请帮助..

在我的irb中

2.2.3 :008 > str = "\"hai"
  => "\"hai"
2.2.3 :009 > str.tr!('\"', '')
  => "hai"

为什么没有双引号我无法获得输出?对不起,如果我的问题不符合您的标准..

4 个答案:

答案 0 :(得分:0)

你可以改用正则表达式,试试这个

str = "\"hai"
str = str.gsub(/\"/, '')

希望有所帮助!

答案 1 :(得分:0)

这仅从字符串中删除前导和尾随双引号。你得到一个新字符串并保留旧字符串。

str = "\"ha\"i\""
# => "\"ha\"i\""
new_str = str.gsub(/^"+|"+$/, '')
# => "ha\"i"

str
# => "\"ha\"i\""

或者您更改原始字符串。

str.gsub!(/^"+|"+$/, '')
# => "ha\"i"
str
# => "ha\"i"

这是一个红宝石的惯例。带有感叹号/点的方法名称会修改对象本身。

答案 2 :(得分:0)

您也可以使用.tr方法。

str = "\"hai"
str = str.tr('\"', '')

##OR

str.tr!('\"', '')

## OUTPUT
"hai"

答案 3 :(得分:0)

这应该有效:

str = "\"hai"
str.tr('"', '')

请注意,您只能在使用双引号(\")定义的字符串中转义("\"")双引号,否则,您不会('"')。