首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >迭代ruby 1.8.6中字符串的每个字符(each_char)

迭代ruby 1.8.6中字符串的每个字符(each_char)
EN

Stack Overflow用户
提问于 2009-09-28 00:48:33
回答 4查看 106.8K关注 0票数 92

我是ruby的新手,目前正在尝试从ruby的基本字符串中分别操作每个字符。我使用的是ruby 1.8.6,我想这样做:

代码语言:javascript
复制
"ABCDEFG".each_char do |i|
  puts i
end

这会产生一个未定义的方法`each_char‘错误。

我期望看到的垂直输出是:

代码语言:javascript
复制
A
B
C
D
..etc

是否仅为1.9定义了each_char方法?我尝试使用普通的each方法,但该块只是在一行中输出整个字符串。我想知道如何做到这一点的唯一方法是从头开始创建一个字符数组,这是相当不方便的:

代码语言:javascript
复制
['A','B','C','D','...'].each do|i|
  puts i
end

这将输出所需的:

代码语言:javascript
复制
A
B
C
..etc

是否有一种方法可以使用未经修改的字符串来实现此输出?

我认为Java的等价物是:

代码语言:javascript
复制
for (int i = 0; i < aString.length(); i++){
  char currentChar = aString.charAt(i);
  System.out.println(currentChar);
}
EN

回答 4

Stack Overflow用户

发布于 2014-07-02 17:31:18

扩展la_f0ka的注释,特别是。如果您还需要代码中的索引位置,您应该能够这样做

代码语言:javascript
复制
s = 'ABCDEFG'
for pos in 0...s.length
    puts s[pos].chr
end

当Ruby < 1.9 returns the code of the character at that position而不是a substring of one character at that position时,.chr很重要。

票数 17
EN

Stack Overflow用户

发布于 2020-08-09 08:25:45

代码语言:javascript
复制
"ABCDEFG".chars.each do |char|
  puts char
end

也是

代码语言:javascript
复制
"ABCDEFG".each_char {|char| p char}

Ruby版本>2.5.1

票数 4
EN

Stack Overflow用户

发布于 2009-09-28 05:51:29

1.8.6中确实存在一个问题。在这个版本之后就可以了

在1.8.6中,您可以添加以下内容:

代码语言:javascript
复制
requre 'jcode'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1484952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档