首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将字符和int的列表转换为字符串

如何将字符和int的列表转换为字符串
EN

Stack Overflow用户
提问于 2016-06-28 18:19:15
回答 3查看 6.6K关注 0票数 2

我有一个字符和整数的列表,我试图将它们转换成一个字符串。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> (define l (cons #\a (cons #\b (cons 3 null))))

我想将这个列表转换为字符串"ab3"

使用list->string不起作用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> (list->string l)
list->string: contract violation
  expected: (listof char?)
  given: (list #\a #\b 3)

当我尝试将其与integer->char相结合时,它会给出以下数值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> (define l (cons #\a (cons #\b (cons (integer->char 3) null))))
> (list->string l)
"ab\u0003"

使用number->string也不起作用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> (define l (cons #\a (cons #\b (cons (number->string 3) null))))
> (list->string l)
list->string: contract violation
  expected: (listof char?)
  given: '(#\a #\b "3")
  context...:
   C:\Program Files\Racket\collects\racket\private\misc.rkt:87:7

list->string需要一个字符列表,它不接受字符串。

另一次尝试,首先将字符串转换为列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> (define l (cons #\a (cons #\b (cons (string->list (number->string 123)) null))))
> (list->string l)
list->string: contract violation
  expected: (listof char?)
  given: '(#\a #\b (#\3))
  context...:
   C:\Program Files\Racket\collects\racket\private\misc.rkt:87:7

它也不接受子列表。如何将其转换为字符串"ab3"

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-28 21:12:23

您希望处理字符和整数的列表,并将它们连接在一个字符串中。试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(define (process lst)
  (apply string-append                   ; append all the strings
         (map (lambda (e)                ; create a list of strings
                (if (char? e)            ; if it's a char
                    (string e)           ; convert it to string
                    (number->string e))) ; same if it's a number
              lst)))

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(process (list #\a #\b 123 #\c))
=> "ab123c"
票数 2
EN

Stack Overflow用户

发布于 2016-06-30 06:48:48

字符是具有值的类型。这个值是在unicode中定义的,因此65是大写的A66是大写的B。所有字符都有整数值,char->integer从字符转换为数字unicode值,integer->char从unicode值转换为字符。

数字字符从48 (#x30)开始,它是零到57 (#x39),这是一个9。因此,(list->string (list #\a #\b (integer->number #x33))) ; ==> "ab3"

可以使用number->string将数字值转换为字符串。例如:(number->string 123) => "123"。这将显示在基数10中,但如果您希望它以十六进制显示,则可以使用(number->string 123 16) ;==> "7b"。请注意,list->string只接受一个字符列表,其中不能包含其他元素,比如数字。

您可以将多个字符串与string-append连接起来。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(string-append (list->string '(#\a #\b))
               (number->string #x7b)
               "c") 
; ==> "ab123c"
票数 0
EN

Stack Overflow用户

发布于 2022-11-19 06:43:06

Racket有一个名为~a的方便的函数,它像使用display一样将其参数转换为字符串,并将它们连接在一起(加上一组可选的关键字参数以控制格式设置,但这里不需要它们)。将它与apply结合起来,将列表中的元素作为参数处理。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> (apply ~a '(#\a #\b 3))
"ab3"

(如果您使用的是#lang racket/base,则必须使用(require racket/format))。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38089276

复制
相关文章
为啥await在forEach中不生效?
前两天要写循环遍历请求接口,于是就在forEach中用到了await,但是根本不是我想要的啊!
用户3258338
2019/10/29
2.5K0
Windows凭据不工作
如果不是敲错IP、用户名、密码,报凭据不工作,一般情况下执行这几句命令后重启远程服务就正常了
Windows技术交流
2021/06/15
6.1K0
在SAP系统中,如何设置生产订单自动关闭
SAP系统中,若生产订单已经完成,那么是用技术性完成(Technical complete)的方式对订单进行操作,目的是让生产订单对组件的预留进行清除。一般来说,大家普遍采用的是人工去进行生产订单技术关闭的方式,且一般由一个企业的订单计划员负责。
matinal
2020/10/30
2.1K0
在SAP系统中,如何设置生产订单自动关闭
PageHelper在SpringBoot的@PostConstruct中不生效
在使用PageHelper的过程中,出现了一个很奇怪的问题,假设在数据库中存放有30条Country记录,我们用下面的方法使用PageHelper进行分页查询,那么我们希望得到的page.size是10。
翎野君
2023/05/12
9820
php 生成订单号201807205598981
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112386.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
7160
在 HTML 中嵌入 PHP 代码
PHP 天生对 Web 和 HTML 友好,在 PHP 诞生之初,主要用于在 Web 1.0 中构建个人主页,那个时候,PHP 代表的是 Personal Home Page,随着 Web 互联网的发展,在 Web 2.0 时代,PHP 进一步进化为 PHP:Hypertext Preprocessor,即超文本处理器,而 HTML 则是 HyperText Markup Language 的缩写,也就是超文本标记语言。
学院君
2020/05/28
6.3K0
await 只在 async 函数中工作
关于 promise 的一种更优雅的写法 async/await 中,await 只会出现在 async 函数中,我们使用 async/await 时,几乎不需要 .then,因为 await 为我们处理等待;但是在代码的顶层,当我们在 async 函数的外部时,我们在语法上是不能使用 await 的,所以通常添加 .then/catch 去处理最终结果或者 error。
前端开发博客
2020/11/04
1.5K0
await 只在 async 函数中工作
在IT开发中工作种类的分类
可能很多同学在学习python之前都听说过什么:前端程序员,后端程序员,安全工程师,运维,爬虫,全栈程序员等等各种各样的头衔名称,搞得大家都不知道该怎么选择了。我当初学编程之前也有过类似的经历,所以这里我尽可能给大家解释明白。
python自学网
2021/11/27
9550
在IT开发中工作种类的分类
为什么不建议在 Docker 中跑 MySQL?
—1— 前言 容器的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。 目前,容器和 Docker 依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以:数据库 MySQL 是否需要容器化? 认真分析大家的各种观点,发现赞同者仅仅是从容器优势的角度来阐述 MySQL 需要容器化,几乎没有什么业务场景进行验证自己的观点;反过来再看反对者,他们从性能、数据安全等多个因素进行阐述 MySQL不需要容器化,也举证了一些不适合的业务场景。下
玄姐谈AGI
2022/03/03
3.5K0
为什么不建议在 Docker 中跑 MySQL?
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/04
4.2K0
RDP你的凭据不工作/RDP密码不刷新
如果你不属于上述的情况,请查看:https://learn.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/troubleshoot/rdp-error-general-troubleshooting#check-whether-a-group-policy-object-gpo-is-blocking-rdp-on-a-local-computer
阿龙w
2022/12/02
12.7K0
RDP你的凭据不工作/RDP密码不刷新
goto语法在PHP中的使用
在C++、Java及很多语言中,都存在着一个神奇的语法,就是goto。顾名思义,它的使用是直接去到某个地方。从来代码的角度来说,也就是直接跳转到指定的地方。我们的PHP中也有这个功能,我们先来看看它是如何使用的:
硬核项目经理
2020/01/02
2.7K0
谈谈JSONAPI在PHP中的应用
现在服务端程序员的主要工作已经不再是套模版,而是编写基于 JSON 的 API 接口。可惜大家编写接口的风格往往迥异,这就给系统集成带来了很多不必要的沟通成本,如果你有类似的困扰,那么不妨关注一下 JSONAPI,它是一个基于 JSON 构建 API 的规范标准,一个简单的 API 接口大致如下所示:
LA0WAN9
2021/12/14
9010
谈谈JSONAPI在PHP中的应用
trait能力在PHP中的使用
相信大家对trait已经不陌生了,早在5.4时,trait就已经出现在了PHP的新特性中。当然,本身trait也是特性的意思,但这个特性的主要能力就是为了代码的复用。
硬核项目经理
2020/03/12
1.9K0
在VSCode中配置PHP开发环境
XAMPP 是一个易于安装的 Apache 发行版,下载并安装好就行了。当然也可以用 phpstudy。
字节星球Henry
2021/08/09
5.2K0
在php代码中内嵌javascript代码
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 格式: 意思: 代码: 需要注意的地方: ---- 格式: 变量($cyg)=<<<start
贵哥的编程之路
2022/09/23
2K0
在php代码中内嵌javascript代码
在 PHP 中如何解码 JSONP
如果是 JSON 数据,使用 json_decode 这个 PHP 函数就能解码,但是有些数据接口只提供了 JSONP 数据如何解码呢?
Denis
2023/04/15
7080
RPM索引在Artifactory中是如何工作
RPM是用于保存和管理RPM软件包的仓库。我们在RHEL和Centos系统上常用的Yum安装就是安装的RPM软件包,而Yum的源就是一个RPM软件包的仓库。JFrog Artifactory是成熟的RPM和YUM存储库管理器。JFrog的官方Wiki页面提供有关Artifactory RPM存储库的详细信息。
JFrog杰蛙科技
2020/07/03
2K0
RPM索引在Artifactory中是如何工作
SignalR 在IE中无法工作 - Internet Explorer
运行基于SignalR的超线程上载器的代码,发现SignalR 在IE 9上居然没法工作了,提示如下: 提示很明显,需要json2.js的支持。 使用Nuget 搜索json2.js 并安装: 在引用
张善友
2018/01/29
3.3K0
SignalR 在IE中无法工作 - Internet Explorer
在mysql中order by是怎样工作的?
还有一种就是通过rowId 排序(这种情况是当一行数据过大的时候) 直接上 流程图 :
袁新栋-jeff.yuan
2020/08/26
2.4K0
在mysql中order by是怎样工作的?

相似问题

在运行时设置ENUM值

36

,在运行时设置值服务的值。

23

在运行时设置BrowsableAttribute的值

33

在运行时设置属性的值

31

在运行时设置默认值

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文