String 如何在haskell中将字符串转换为整数?

String 如何在haskell中将字符串转换为整数?,string,haskell,integer,String,Haskell,Integer,我正在为一个类或我的类实现RSA加密系统,为了能够实现它,我们显然需要将字符串转换为整数,然后反过来。使用基本级别的haskell,有人能向我解释一下如何做到这一点吗。我有一个函数,它可以告诉我字符代码的最大长度,供您考虑 谢谢大家。我不确定您到底需要什么,但如果您只是想获得字符串的数字表示形式,您可以使用Data.Char.ord,它将字符转换为Int。然后可以使用Data.Char.chr将每个Int转换回Char 使用: import Data.Char (ord, chr) strin

我正在为一个类或我的类实现RSA加密系统,为了能够实现它,我们显然需要将字符串转换为整数,然后反过来。使用基本级别的haskell,有人能向我解释一下如何做到这一点吗。我有一个函数,它可以告诉我字符代码的最大长度,供您考虑


谢谢大家。

我不确定您到底需要什么,但如果您只是想获得
字符串的数字表示形式,您可以使用
Data.Char.ord
,它将
字符
转换为
Int
。然后可以使用
Data.Char.chr
将每个
Int
转换回
Char

使用:

import Data.Char (ord, chr)

stringsToInts :: String -> [Int]
stringToInts = map ord

intsToString :: [Int] -> String
intsToString = map chr
你可以:

Prelude Data.Char> let ints = stringsToInts "Hello world!"
Prelude Data.Char> ints
[72,101,108,108,111,32,119,111,114,108,100,33]
Prelude Data.Char> intsToString ints
"Hello world!"

如果需要,您可以进一步处理列表
ints
(并进一步修改
intsToString

我不确定您到底需要什么,但如果您只是试图获得
字符串的数字表示形式,您可以使用
Data.Char.ord
Char
转换为
Int
。然后可以使用
Data.Char.chr
将每个
Int
转换回
Char

使用:

import Data.Char (ord, chr)

stringsToInts :: String -> [Int]
stringToInts = map ord

intsToString :: [Int] -> String
intsToString = map chr
你可以:

Prelude Data.Char> let ints = stringsToInts "Hello world!"
Prelude Data.Char> ints
[72,101,108,108,111,32,119,111,114,108,100,33]
Prelude Data.Char> intsToString ints
"Hello world!"

然后,如果需要,您可以进一步处理列表
ints
(并进一步修改
intsToString

您还可以使用
ByteString
模块:使用
pack
将简单的
字符串转换为
ByteString
,然后直接将其作为字节数组使用(
Word8
,如果准确的话)。

您也可以使用
ByteString
模块:使用
pack
将简单的
字符串转换为
ByteString
,然后直接将其作为字节数组使用(
Word8
,如果准确的话).

你能提供一些例子说明你需要什么转换吗?转换是什么意思?比如“123”->123 och其他什么?我的意思是“单词”->一些数字,然后一些数字回到“单词”如果您打算直接使用RSA对消息进行编码,您使用的RSA是非常错误的。@WombatCombat:如果结果数字大于模数,则您无法对其进行加密。通常使用RSA时,您使用混合方法。您使用RSA共享密钥并使用该密钥对称加密消息。请提供一些示例你需要什么样的转换?转换是什么意思?比如“123”->123 och,还有什么?我是说“单词”->一些数字,然后一些数字回到“单词”如果您打算直接使用RSA对消息进行编码,那么您使用的RSA是非常错误的。@WombatCombat:如果得到的数字大于模会怎样?那么您就不能对其进行加密。通常使用RSA时,您使用混合方法。您使用RSA共享密钥,并使用该密钥对称加密消息,这与我所看到的完全相同g谢谢!欢迎大家更多的输入!这是我尝试过但没有运气的:(str2Integer::[Char]->Integer str2Integer=map-ord
ord
返回一个
Int
,它与
Integer
的类型不同。你应该使用
str2Integer=map(toInteger.ord)
。还有一个对应的函数
fromInteger
非常符合我的要求。谢谢!欢迎大家提供更多信息!这是我尝试过的,但运气不好:(str2Integer::[Char]->Integer str2Integer=map ord
ord
返回一个与
Integer
类型不同的
Int
。您应该使用
str2Integer=map(toInteger.ord)
。还有一个对应的函数
fromInteger