word_wrap.sf 505 B

12345678910111213141516171819202122232425
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Word_wrap
  4. #
  5. class String {
  6. method wrap(width) {
  7. var txt = self.gsub(/\s+/, " ");
  8. var len = txt.len;
  9. var para = [];
  10. var i = 0;
  11. while (i < len) {
  12. var j = (i + width);
  13. while ((j < len) && (txt.char_at(j) != ' ')) { --j };
  14. para.append(txt.substr(i, j-i));
  15. i = j+1;
  16. };
  17. return para.join("\n");
  18. }
  19. }
  20. var text = 'aaa bb cc ddddd';
  21. say text.wrap(6);