Tôi có một chuỗi
"1,2,3,4"
và tôi muốn chuyển đổi nó thành một mảng:
[1,2,3,4]
Làm sao?
Tôi có một chuỗi
"1,2,3,4"
và tôi muốn chuyển đổi nó thành một mảng:
[1,2,3,4]
Làm sao?
Câu trả lời:
>> "1,2,3,4".split(",")
=> ["1", "2", "3", "4"]
Hoặc cho số nguyên:
>> "1,2,3,4".split(",").map { |s| s.to_i }
=> [1, 2, 3, 4]
Hoặc cho các phiên bản sau của ruby (> = 1.9 - như được chỉ ra bởi Alex):
>> "1,2,3,4".split(",").map(&:to_i)
=> [1, 2, 3, 4]
String Integer
không gian nhưString
arr = "12345"
arr.split('')
output: ["1","2","3","4","5"]
String Integer
với không gian nhưString
arr = "1 2 3 4 5"
arr.split(' ')
output: ["1","2","3","4","5"]
String Integer
không gian nhưInteger
arr = "12345"
arr.split('').map(&:to_i)
output: [1,2,3,4,5]
arr = "abc"
arr.split('')
output: ["a","b","c"]
Giải thích :
arr
-> chuỗi mà bạn sẽ thực hiện bất kỳ hành động.split()
-> là một phương thức, phân tách đầu vào và lưu trữ dưới dạng mảng.''
hoặc ' '
hoặc ','
-> là một giá trị, đó là cần thiết để được gỡ bỏ từ chuỗi nhất định.cách đơn giản nhất để chuyển đổi một chuỗi có dấu phân cách như dấu phẩy là sử dụng phương thức phân tách
"1,2,3,4".split(',') # "1", "2", "3", "4"]
bạn có thể tìm thêm thông tin về cách sử dụng phương pháp phân chia trong tài liệu ruby
Chia str thành các chuỗi con dựa trên một dấu phân cách, trả về một mảng các chuỗi con này.
Nếu mẫu là một Chuỗi, thì nội dung của nó được sử dụng làm dấu phân cách khi tách str. Nếu mẫu là một không gian duy nhất, str được phân chia trên khoảng trắng, với khoảng trắng hàng đầu và các ký tự khoảng trắng liền kề bị bỏ qua.
Nếu mẫu là Regrec, str được chia ở nơi mẫu phù hợp. Bất cứ khi nào mẫu phù hợp với một chuỗi có độ dài bằng không, str được chia thành các ký tự riêng lẻ. Nếu mẫu có chứa các nhóm, các kết quả khớp tương ứng cũng sẽ được trả về trong mảng.
Nếu mẫu bị bỏ qua, giá trị của $; Được sử dụng. Nếu $; là nil (là mặc định), str được phân chia trên khoảng trắng như thể `'đã được chỉ định.
Nếu tham số giới hạn bị bỏ qua, các trường null theo dõi sẽ bị chặn. Nếu giới hạn là một số dương, nhiều nhất số trường đó sẽ được trả về (nếu giới hạn là 1, toàn bộ chuỗi được trả về là mục duy nhất trong một mảng). Nếu âm, không có giới hạn đối với số lượng trường được trả về và các trường null theo dõi không bị triệt tiêu.
"12345".each_char.map(&:to_i)
each_char
về cơ bản giống như split('')
: Nó chia một chuỗi thành một mảng các ký tự của nó.
hmmm, bây giờ tôi mới nhận ra rằng trong câu hỏi ban đầu, chuỗi chứa dấu phẩy, vì vậy câu trả lời của tôi không thực sự hữu ích ;-( ..