2011-03-08 20 views
17

Zastanawiam się, jak mogę przekonwertować Char na Int. E.g.Konwertuj Char na Int

a = '\x2' -- a == 2 
      -- type of a should be Char 
b = charToInt a -- b == 2 
       -- type of b should be Int 

Ale nie mam pojęcia, jak:/

Dzięki z góry

+9

Odkryj i używaj [hoogle] (http://www.haskell.org/hoogle/?hoogle=Char+-%3E+Int). –

Odpowiedz

21

Można korzystać z funkcji ord przekonwertować znak na jego całkowitą (porządkowej) reprezentacji.

chr idzie w przeciwnym kierunku.

> ord '\x2'­ 
    => 2 
> chr 97 
    => 'a' 
> ord (chr 42) 
    => 42 
+19

aby dodać, musisz "zaimportować Char' lub" import Data.Char' aby użyć tych – newacct

4

Możesz użyć zEnum lub Data.Char.ord.

+0

(fromEnum 'x') - (fromEnum '0') == x – jpredham

+1

@jpredham Mamy 'digitToInt '9 '' from 'Data.Char' dla tego dokładnego puprose – gvlasov