string-ref 函数不能正常工作

标签 string racket

在我的代码中,我试图检查一个字符串是否有一个特定的前缀, 这样做,我正在使用平等?和字符串引用函数。 但它似乎没有按预期工作

这里是我要说的部分:

(: plPrefixContained : String  -> Boolean)
(define (plPrefixContained x )
   (equal? (string-ref x 0) "p"))

(test (plPrefixContained "pcenuc") => true)

我正在检查这个特定的函数,它应该返回 true,但我在测试中总是返回 false。 我试图将 "p"更改为 #/p"并且我试图使用 string=? 和 eq? insted of equal? 但没有。

任何帮助将不胜感激

(测试(plPrefixContained "pcenuc")=> 真)

我正在使用 DRracket,语言是#lang pl

最佳答案

请记住,string-ref 返回一个字符,而不是一个字符串。为使比较成功,请使用 #\p 而不是 "p"

(define (plPrefixContained x )
   (equal? (string-ref x 0) #\p))

以上将起作用。但为了更明确,您应该使用 char=? 而不是 equal?,这样您就会记住比较是在字符之间进行的。

关于string-ref 函数不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55430396/

相关文章:

r - 将字符串拆分为较小的字符串以在数据框中创建新行(在 R 中)

java - 从 Realm 数据库查询中获取变音符号不敏感的结果

arguments - 方案 - 可选参数和默认值

java - 什么会使用更多的内存

c++ - 如何检查一个字符串是否表示一个正的非零整数?

scheme - Scheme 中的实现相关代码

user-interface - GUI Table 在 Racket/variable parameters using list-box% 中使用

racket - 试图理解语言扩展中的需求

Python json 编写 ValueError : No JSON object could be decoded

list - 从 Racket 的列表中选择某些项目