首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在方案中定义字符串权限?

如何在方案中定义字符串权限?
EN

Stack Overflow用户
提问于 2012-09-14 07:19:28
回答 2查看 140关注 0票数 1

我需要定义“string-right”这个过程

代码语言:javascript
复制
(define string-right
  (lambda (x)
    (substring x (quotient (string-length x) 2) (string-length x))))

不适用于奇数字符串长度,但prcoedure

代码语言:javascript
复制
(define string-right
    (lambda (x)
      (substring x (+ (quotient (string-length x) 2) 1)(string-length x))))

不适用于偶数字符串长度。请帮帮忙。很沮丧。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-14 07:37:31

假设你想要字符串的右半部分而不是中间部分:

在商(第一个选项)中,替换为:

代码语言:javascript
复制
(string-length x)

通过以下方式:

代码语言:javascript
复制
(+ 1 (string-length x))

如果字符串长度为偶数,则floor((length + 1) / 2) = length /2

否则地板((长度+ 1) / 2) =(长度+ 1) /2

+ 1部件将排除中间元素

完整的解决方案:

代码语言:javascript
复制
(define string-right
  (lambda (x)
    (substring x (quotient (+ 1 (string-length x)) 2) (string-length x))))
票数 1
EN

Stack Overflow用户

发布于 2012-09-14 07:46:07

尝试以下方法:

代码语言:javascript
复制
(define string-right
  (lambda (x)
    (substring x (floor (/ (string-length x) 2)))))

如果字符串长度为奇数,则上述过程将包括中间的字符。如果你不想这样,用ceiling替换floor,中间的字符将不会出现在返回的字符串中。

使用floor的一些示例

代码语言:javascript
复制
(string-right "")      ; => ""
(string-right "a")     ; => "a"
(string-right "ab")    ; => "b"
(string-right "abc")   ; => "bc"
(string-right "abcd")  ; => "cd"
(string-right "abcde") ; => "cde"

使用ceiling的一些示例

代码语言:javascript
复制
(string-right "")      ; => ""
(string-right "a")     ; => ""
(string-right "ab")    ; => "b"
(string-right "abc")   ; => "c"
(string-right "abcd")  ; => "cd"
(string-right "abcde") ; => "de"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12416160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档