string - 如何解析 Netlogo 中的字符串?

标签 string parsing netlogo numeric

上下文

对于我的模型,我希望有一个输入,用户可以在其中输入一系列值。

例如

enter image description here

我想从上面显示的输入中得到一个包含五个数字的列表,例如[0.5 0.2 0 0.2 0.5],所以我可以使用他们输入的数字进行一些计算。

问题

不幸的是,如果我将类型设置为字符串,那么像上面这样设置输入会吐出 "0.5 0.2 0 0.2 0.5"。如果我将类型设置为数字,它将只允许输入一个数字。

那么,如何以空格为基础解析字符串(即“”)?我也对替代方案持开放态度,尽管我更愿意将其保留在 Netlogo 中(例如,不读取值的文本文件)以使其更容易更改,因为我怀疑它会被很多人玩弄。

我的尝试

我尝试过使用 read-from-string,但它也不喜欢上面输入的一系列数字。我还尝试使用字符串扩展 (https://github.com/NetLogo/String-Extension) 中的 explode 函数,但我的 Netlogo (6.2.0) 版本不喜欢该扩展中的 API,并且不允许我使用使用它。

我对 NetLogo 很陌生,如果我的问题很愚蠢或者我没有说清楚,请见谅!

最佳答案

根据 the docs on it , read-from-string 可以解析文字值列表。您遇到的问题是 NetLogo 列表文字必须有方括号才能打开和关闭,根据 the Constant Lists section of the Programming Guide .因此,您需要做的就是将 [] 添加到用户的输入中。

to test
  let s "0.5 0.2 0 0.2 0.5"
  let l read-from-string (word "[" s "]")
  show l
  show item 2 l
end

输出:

observer> test
observer: [0.5 0.2 0 0.2 0.5]
observer: 0

不过,我要提醒的是,用户很容易输入不同格式的数字,例如 0, 2, 3, 5.0,使用逗号分隔值。检查转换是否有效是明智的,因为您从失败的 read-from-string 获得的错误消息可能对模型用户没有帮助。

关于string - 如何解析 Netlogo 中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70240742/

相关文章:

python - 使用 python 解析 HTML 表 - HTMLparser 或 lxml

parsing - LALR(1) 函数参数的空列表

image - 导出NetLogo中的部分 View

python - 需要解析的异常表

c# - 是否可以将一组字符串转换为一个字符串?

java - 分割后字符串变成空白

java - 在java中替换字符串中的空括号

netlogo - 在 NetLogo 中,代理操作是如何执行的?

netlogo - netlogo 中有补丁形状编辑器吗?

string - 用空格替换选项卡