Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每次读取一个Ruby字符串一个字符(用于换行)_Ruby_Input_User Input - Fatal编程技术网

每次读取一个Ruby字符串一个字符(用于换行)

每次读取一个Ruby字符串一个字符(用于换行),ruby,input,user-input,Ruby,Input,User Input,我知道这是一个基本问题。我能够使用以下方法获取字符串和整数的用户输入: str = gets() num = gets().to_i 但是我想逐字读取字符串(比如,在我的例子中,它的长度超过一行),并计算字符串中遇到的每个字符从第一个到最后一个的字符数。我知道这可以通过以下方式实现: str.length 当我试图在Ruby中实现单词换行时,我想从字符角度对其进行计数,比如在线宽范围内(这将是一个用户定义的数字输入),我只想打印那些没有继续到下一行的单词,也就是说,我不想将一个连续单词拆分为两

我知道这是一个基本问题。我能够使用以下方法获取字符串和整数的用户输入:

str = gets()
num = gets().to_i
但是我想逐字读取字符串(比如,在我的例子中,它的长度超过一行),并计算字符串中遇到的每个字符从第一个到最后一个的字符数。我知道这可以通过以下方式实现:

str.length

当我试图在Ruby中实现单词换行时,我想从字符角度对其进行计数,比如在线宽范围内(这将是一个用户定义的数字输入),我只想打印那些没有继续到下一行的单词,也就是说,我不想将一个连续单词拆分为两行。这样的话应该换个说法

谢谢你抽出时间来

将一次读入一个字符:

char = getc()
或者,您可以使用以下命令循环字符串中的字符:


你可能想看看宝石。此外,Rails已经成为ActionView的一部分,如果您正在做web工作,Padrino也有类似的方法

否则,这是来自以下位置的包络线示例:


这回答了问题标题中最初提出的问题,但不是实际提出的问题。哈哈!我想回答这个标题对这篇文章来说已经足够好了。很高兴我的回答能有所帮助。我想我的问题主要是关于“如何”在ruby中输入一个字符,所以我只是在公正地回答这个问题。我还感谢那些通过Ruby中的正则表达式为我实现了word wrap的人(从他们的答案中,我希望通过给a+1至少公平地对待他们为我简化事情所做的努力)。。但毫无冒犯之意。。。。。我不是在寻找如何实现word wrap的解决方案。@mgj从您的问题中,我想您会发现我的答案很有用。看到与其他人截然不同的答案也很有趣。我喜欢Stack Overflow,因为答案和问题来自不同的角度,所以您得到的信息比“官方”API或手册中的信息更有趣和多样。它是属性化的。看到网址了吗?
'abc'.each_char do |char|
  puts char
end  
str = "\
I don't necessarily need code examples -- but if anyone has
ideas for a best approach to specifying a line wrap width
(breaking between words for lines no longer than a specific
column width) for output from a Ruby script, I'd love to
hear about it."

X = 40
puts str.gsub(/\n/," ").scan(/\S.{0,#{X-2}}\S(?=\s|$)|\S+/)


--- output ---
I don't necessarily need code examples
-- but if anyone has ideas for a best
approach to specifying a line wrap width
(breaking between words for lines no
longer than a specific column width) for
output from a Ruby script, I'd love to
hear about it.