簡體   English   中英

將字符串數組轉換為整數數組

[英]Convert array of strings to an array of integers

我需要將表示數字的數組中的字符串轉換為整數。

["", "22", "14", "18"]

[22, 14, 18]

我怎樣才能做到這一點?

要將字符串轉換為數字,您可以使用to_i方法。

要轉換字符串數組,您需要遍歷數組項並在其上應用to_i 你可以用mapmap!來實現map! 方法:

> ["", "22", "14", "18"].map(&:to_i)
# Result: [0, 22, 14, 18]

既然不想要0 - 正如@Sebastian Palma在評論中所說,你將需要使用額外的操作來刪除空字符串:(以下是他的答案!投票給他的評論:D)

> ["", "22", "14", "18"].reject(&:empty?).map(&:to_i)
# Result: [22, 14, 18]

mapmap!之間的區別map! map會返回一個新的數組,而map! 將更改原始數組。

您可以使用grep選擇包含數字的字符串:

["", "22", "14", "18"].grep(/\d+/)
#=> ["22", "14", "18"]

並通過將塊傳遞給grep將它們轉換為to_i

["", "22", "14", "18"].grep(/\d+/, &:to_i)
#=> [22, 14, 18]

根據您的輸入,您可能需要更嚴格的模式,例如/\\A\\d+\\z/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM