string - 转义码\"prints both\"。无论如何要在字符串中添加一个“。?

标签 string haskell

let ans = stringConcat ["<a href=","\"",str,"\"",">",strr,"</a>"]
                putStr ("\nOutput :" ++show (ans))

当我打印这个答案是Output :"<a href=\"www.test.com\">testing</a>"我想知道为什么额外的\正在打印。 \"假设是双引号的转义码。它再次打印\" .我想知道为什么会发生这种情况,有没有办法把 "是一个字符串..?

连接函数
stringConcat::[String]->String 
stringConcat xs= concat xs 

最佳答案

是的,\"是双引号的正确转义码,所以字符串 ans包含您预期的双引号。

问题是您正在使用 show ,这是一个显示值的函数,就像它们出现在 Haskell 代码中一样,这意味着必须对带有双引号的字符串进行转义。

> putStrLn (show "I said \"hello\".")
"I said \"hello\"."

所以如果你不想这样,就不要使用 show :
> putStrLn "I said \"hello\"."
I said "hello".

关于string - 转义码\"prints both\"。无论如何要在字符串中添加一个“。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9172587/

相关文章:

string - Oracle 查询 - 用逗号分隔的数据连接

c - 如何定义宏以将连接的 char 字符串转换为 C 中的 wchar_t 字符串

ruby - 如何用 ruby 切割绳子

java - 如何知道字符串是否包含重音符号

Haskell:如何将字符串转换为 bool 矩阵

c++ - 为 haskell 堆栈项目编写静态 cpp 库

ruby - 为什么 Range 对象之间的差异是 'A' 。 .'AB' 和 'B' 。 ruby 中的 .'AB'?

multithreading - Haskell:我刚刚重新发明了什么单子(monad)?

haskell - 由于前奏不明确,无法构建 cabal 包

performance - 如何在 Haskell 中进行 Lazy Map 反序列化