首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Ruby:删除字符串开头的空格字符

Ruby:删除字符串开头的空格字符
EN

Stack Overflow用户
提问于 2011-04-28 23:12:08
回答 2查看 46.2K关注 0票数 20

编辑:我通过使用strip!删除引导和尾随的空白,正如我在这个视频中所显示的来解决这个问题。然后,我接着通过迭代和添加空格来恢复数组中每个字符串末尾的空白。这个问题与"dupe“不同,因为,我的目的是将空白保留在的末尾。不过,脱衣服!将删除前导和尾随空格,如果这是您的意图。(我本可以回答这个问题,但由于这是一个错误的标记,我只能编辑我的原始问题来包含这个问题。)

我有一系列的单词,我试图删除任何空白,可能存在于单词的开头而不是结尾。雷丁!只是处理一根绳子的末端。我希望从字符串的开头删除空格。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
example_array = ['peanut', ' butter', 'sammiches']
desired_output = ['peanut', 'butter', 'sammiches']

正如您所看到的,并不是数组中的所有元素都存在空白问题,所以我不能像删除第一个字符一样删除第一个字符,如果所有元素都以一个空格字符开头。

完整代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
words = params[:word].gsub("\n", ",").delete("\r").split(",")
words.delete_if {|x| x == ""}
words.each do |e|
  e.lstrip!
end

用户可以在表单上输入的示例文本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Corn on the cob,
Fibonacci,
StackOverflow
Chat, Meta, About
Badges
Tags,,
Unanswered
Ask Question
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-28 23:19:08

String#lstrip (或String#lstrip!)是你想要什么

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
desired_output = example_array.map(&:lstrip)

关于您的代码的更多评论:

  1. delete_if {|x| x == ""}可以用delete_if(&:empty?)代替
  2. 但是您需要reject!,因为delete_if只返回不同的数组,而不是修改现有的数组。
  3. words.each {|e| e.lstrip!}可以用words.each(&:lstrip!)代替
  4. 如果在Windows机器上读取Windows样式的文本文档,或者在Unix机器上读取Unix样式的文档,则delete("\r")应该是多余的。
  5. split(",")可以替换为split(", ")split(/, */) (如果最多只有一个空格,则可以替换为/, ?/ )。

所以现在看起来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
words = params[:word].gsub("\n", ",").split(/, ?/)
words.reject!(&:empty?)
words.each(&:lstrip!)

如果你有样本文本,我可以给你更多的建议。

编辑:好的,下面是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
temp_array = text.split("\n").map do |line|
  fields = line.split(/, */)
  non_empty_fields = fields.reject(&:empty?)
end
temp_array.flatten(1)

采用的方法有String#splitEnumerable#mapEnumerable#rejectArray#flatten

Ruby还有用于解析逗号分隔文件的库,但我认为它们在1.8和1.9之间略有不同。

票数 37
EN

Stack Overflow用户

发布于 2014-05-19 12:24:24

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> ' string '.lstrip.chop
=> "string"

剥去两个空白..。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5829051

复制
相关文章

相似问题

Oracle SQL数值查找10个字符

10

如何使用PROC SQL查找数值变量的长度

34

用于跨多列查找多数值的SQL

31

在SQL中查找特定值的具体数值

111

在SQL中使用按位逻辑查找整数值

14
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文