2012-01-04 27 views
-4

我有一個字符串,可能在實際文本之前有一些\n。我想在新行字符或字符後添加t->。這意味着,一旦我想插入't->'的字符串中有'\ n'以外的其他字符。如何在' n'之後插入't->'?

有沒有什麼簡單的方法比

what = "\nrufus: ready"  #result is "\nt->rufus: ready" 
#what = "\n\nrufus: ready" #result is "\n\nt->rufus: ready" 
#what = "\n\nrufus\n: ready" #result is "\n\nt->rufus: ready\n" 

what.length.times do |i| 
    if (what[i,1] != "\n") 
     what.insert(i,"t->") 
     break 
    end 
end 
+3

「\ n \ n」。長度總是2.您的代碼,做你想讓它做什麼?什麼是'什麼'? – steenslag 2012-01-04 01:55:05

+0

你的問題不清楚。如果您將包含原始文本和想要獲得的內容,這會更有幫助。你想在所有行結束之前插入一些文本? – Phrogz 2012-01-04 01:56:56

+0

「什麼」不是我聽說過的任何變數。他們在「What」中有換行符? – 2012-01-04 02:00:16

回答

2

如果我理解正確的,你想以下;

  • 「ABC DEF」=> 「T-> ABC DEF」
  • 「\ n \ NABC DEF」=> 「\ n \ NT-> ABC DEF」

這樣,我會嘗試;

string.sub(/^\n*/) do |newlines| 
    "#{newlines}t->" 
end 
+0

你理解正確。對於混淆抱歉:-( – Radek 2012-01-04 04:29:50

+0

任何機會,你可以解釋你的代碼? – Radek 2012-01-04 04:32:35

+0

你會爲'\ n \ nready \ n'編寫代碼嗎?我期待'\ n \ nt-> ready \ n'作爲最終的字符串嗎? – Radek 2012-01-04 04:33:59

0

如果你想在每一行的末尾插入一些文字:

original = "Hello\nWorld\nYay" 
changed = original.gsub /$/, ' More!' 
puts changed 
#=> Hello More! 
#=> World More! 
#=> Yay More! 
0

它並不像你迭代它改變弦是個好主意。

大概這是你在找什麼?

"\n\n".gsub("\n", "t->\n") # => "t->\nt->\n" 

( 「\ n」 與替代每個實例 「T - > \ n」)

相關問題