Clojure içinde nasıl bir dizi için bir Dize dönüştürmek miyim?
Farklı çizgiler var, bazıları gibi "", bazıları gibi "45px". 45 Peki ben nasıl 45 numara için bunların her ikisi de dönüştürmek?
CEVAP
Yeni cevap
Snrobot cevabı daha çok seviyorum. Java yöntemi kullanarak daha basit ve bu basit kullanım örneği için okuma-string kullanarak daha sağlamdır. Küçük birkaç değişiklik yaptım. Yazar, negatif sayılar kural olmadığı için, negatif sayılar izin ayarladım. Ben de numarasını dize baştan başlamak gerekir öyle yaptı.
(defn parse-int [s]
(Integer/parseInt (re-find #"\A-?\d " s)))
Ayrıca Tamsayı/parseınt hayır taban ve önde gelen sıfır değilse bile verilen, zaman ondalık olarak kullandığı buldum.
Eski cevap
İlk olarak, sadece bir tam sayı ayrıştırılamıyor bu google üzerinde bir isabet ve iyi bir arka plan bilgileri (beri):
reader: kullanabilirsiniz
(read-string "9") ; => 9
Oku sonra bir numara olduğunu kontrol edin:
(defn str->int [str] (if (number? (read-string str))))
Eğer kullanıcı giriş de okuyun önce kontrol edin diye clojure okuyucu tarafından güvenilir olabilir emin değilim:
(defn str->int [str] (if (re-matches (re-pattern "\\d ") str) (read-string str)))
Son çözüm tercih ederim.
Ve şimdi, belirli bir soru için. Bir tamsayı ile başlayan bir şey ayrıştırmak için 29px
gibi:
(read-string (second (re-matches (re-pattern "(\\d ).*") "29px"))) ; => 29
Nasıl Perl ile bir dizi için bir dize ...
Nasıl bir dize dönüştürmek için yığın ...
Nasıl dize dönüştürmek için javascript...
Nasıl PHP bir dizi için bir dize dönüş...
nasıl dize dizi değerleri int dönüştür...