反对 Neo4j 中的 apoc.text.HexValue

问题描述

是 Neo4j apoc 库反对 apoc.text.hexValue

可以得到hexString并返回十六进制数或十进制数的值吗?

谢谢。

解决方法

有一个 APOC 函数可以将字符串字符转换为十六进制。但 没有将字符串> 1 个字符转换为十六进制的函数。 https://neo4j.com/labs/apoc/4.1/overview/apoc.text/apoc.text.hexCharAt/

apoc.text.hexCharAt(text :: STRING?,index :: INTEGER?)

例如:将字符“j”转换为十六进制。将字符串 Neo4j 的第 5 个字符(或索引 4)转换为十六进制

RETURN apoc.text.hexCharAt("Neo4j",4) AS output;

Result: "006A"
,

您可以为反函数创建一个 GH 问题。

在那之前,您也可以手动计算。

with "1FE" as hex 
return reduce(res=0,c in split(toUpper(hex),'') 
| res*16 + 
case c when 'F' then 15 when 'E' then 14 when 'D' then '13' when 'C' then 12 when 'B' then 11 when 'A' then 10 
else toInteger(c) end) 
as value,0x1FE as comp

顺便说一句。 Cypher 还支持十六进制值:return 0x1F