在AWS Neptune GDB的Gremlin控制台中将字符串转为整数/长整型
在AWS Neptune Gremlin控制台中转换字符串为整数/长整型
我来帮你搞定这个类型转换的问题~你之前遇到的报错,核心原因是在map步骤里直接把Traverser对象强转成了字符串或整数,但it其实是包裹着属性值的容器,得先取出里面的实际字符串值再做转换才行。
下面给你几种可行的解决方案:
1. 基础转换写法(转Integer)
用it.get()取出Traverser中的字符串值,再通过Groovy的类型转换或Java的parse方法转成整数:
// 方法1:使用Groovy的类型转换语法 g.V(1).values('age').map{ it.get() as Integer }.next() // 方法2:使用Java的Integer.parseInt() g.V(1).values('age').map{ Integer.parseInt(it.get()) }.next()
2. 转换为Long类型
如果你的数值范围更大,需要转成Long,写法类似:
// Groovy类型转换 g.V(1).values('age').map{ it.get() as Long }.next() // Java的Long.parseLong() g.V(1).values('age').map{ Long.parseLong(it.get()) }.next()
3. 结合数学运算的示例
转成数值类型后,就可以直接做加减乘除等运算了,比如给age加10:
g.V(1).values('age').map{ it.get() as Integer }.map{ it + 10 }.next()
额外注意:处理非数字字符串
如果你的age属性可能存在非数字的字符串值,直接转换会报错,可以加个判断逻辑避免异常:
g.V(1).values('age').map{ def strVal = it.get() // 先判断是否为数字,是则转换,否则返回null或默认值 strVal.isNumber() ? strVal as Integer : null }.next()
内容的提问来源于stack exchange,提问作者UKR
相关产品推荐
相关产品推荐

