2010-12-23 78 views
6

我知道这个问题是一个基本问题。我能够把用户输入的字符串,并使用一个整数:一次只读一个字符串一个字符(用于换行)

str = gets() 
num = gets().to_i 

但我想从字符串读取(说这是在我的案件超过长的线)逐个字符和计数字符串中遇到的每个字符从第一个字符到最后一个字符的数量。我知道这可以通过以下方式实现:

str.length

我想指望它性格聪明,因为我想实现字在Ruby中包裹,其中线宽度内说(这将是一个用户定义的数字输入)我想只打印那些不会继续到下一行的单词,即我不想将连续单词分成两行。应该把这些词带到新的界限。

感谢您的时间..!

回答

7

getc将在角色一次读:

char = getc() 

,也可通过该字符串中的字符周期与each_char

'abc'.each_char do |char| 
    puts char 
end 
+1

这回答了最初提出的问题的标题,但没有什么实际要求。 – Phrogz 2010-12-23 01:33:44

+0

确实如此。 – bowsersenior 2010-12-23 02:30:05

5

您可能要检查出Text::Format宝石。另外,Rails将word_wrap作为ActionView的一部分,而Padrino也有类似的word_wrap方法。

否则这是从linewrap样本:http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/249306

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. 
相关问题