在 Scheme 中将字符串转换为整数

Posted

技术标签:

【中文标题】在 Scheme 中将字符串转换为整数【英文标题】:Converting String to integer in Scheme 【发布时间】:2013-10-23 03:05:58 【问题描述】:

如何将一串数字转换为整数? 我希望将“365”转换为 365。

我尝试过的, string->list 然后 char->integer,但这会返回该整数的 ASCII 值,我怎样才能得到该整数?

请帮忙。

【问题讨论】:

(string->number "365") 可能重复here 【参考方案1】:

从字符串中解析整数的另一种解决方案:

#lang typed/racket

(: numerical-char->integer (-> Char
                               Integer))
(define (numerical-char->integer char)
  (let ([num (- (char->integer char) 48)]) ; 48 = (char->integer #\0)
    (if
     (or (< num 0) (> num 9))
     (raise 'non-numerical-char #t)
     num)))

(: string->integer (-> String
                       Integer))
(define (string->integer str)
  (let ([char-list (string->list str)])
    (if (null? char-list)
        (raise 'empty-string #t)
        (foldl
         (λ([x : Integer] [y : Integer])
           (+ (* y 10) x))
         0
         (map numerical-char->integer char-list)))))

【讨论】:

【参考方案2】:

试试:string-&gt;number

> (string->number "1234")
1234

【讨论】:

啊哈,我没试过这个。无论如何,我走了很长一段路,谢谢 相关:***.com/questions/23027030/…

以上是关于在 Scheme 中将字符串转换为整数的主要内容,如果未能解决你的问题,请参考以下文章

在 JPQL 中将整数转换为字符串

如何在C#中将字符串转换为整数

如何在 Objective-C 中将字符串转换为整数? [复制]

如何在 Excel VBA 中将整数转换为字符串?

如何在 C++ 中将大数字符串转换为整数?

在 Python 中将字符串转换为带小数的整数