如何在Solidity中检查空字符串?

3

我正在学习Solidity。我想检查一个内存字符串变量是否为null、空或者只包含空格。

我知道我需要这样检查:

bytes(_content).length > 0

然而,这并不包括空白符。检查空白符的最佳方法是什么? 或者您认为此检查不应属于 s。
1个回答

3

如果你将空字符串转换为字节,你会得到 0x

如果你将一个空格转换为字节,你会得到 0x20

每个空格都会增加另外一个20。例如 2 个空格

" " 是 0x2020

空字符串字符始终返回 "20",据我所知,自 Solidity 6.0.0 以来,我们可以使用字节数组进行切片操作。例如

bytes test = '0xabcd'

test[2:5];  # 'abc'

了解这一点,如果您拥有此

bytes whitespaces='0x20202020202020'

您可以编写一个for循环,从2开始直到结尾,如果偶数索引为2且奇数索引为0,则表示您仅具有空格。


这绝对是一个解决方案。听起来不错,我会这么做的。但我想知道它在性能方面是否最优,代码方面是否最干净。但听起来它是唯一的解决方案。感谢@Yilmaz。 - Martijn Jan Jaap de Bruin
1
在Solidity中处理字符串是一件令人头疼的事情。 - Yilmaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接