julia - 在 Julia 中使用过滤器后使用包含
问题描述
我正在尝试检查是否有其他文件不包含子字符串“Sys”但以“.vm”结尾,但我收到一条错误消息:
ERROR: LoadError: MethodError: no method matching contains(::Array{String,1},
::SubString{String})
Closest candidates are:
contains(::Function, ::Any, ::Any) at reduce.jl:664
contains(::AbstractString, ::AbstractString) at strings/search.jl:378
这是代码:
for f2 in filter(x -> endswith(x, ".vm"), readdir())
if (!contains(f2,"Sys"))
#Do something with this file
end
end
在过滤器的输出上使用 readlines 后,我遇到了同样的问题:
for f3 in filter(x -> !startswith(x, "Sys"), readdir())
calledFileFunction = readlines(f3)
fileLength=length(calledFileFunction)
for i=1:fileLength
if (contains(calledFileFunction,"ball"))
#Do something
end
end
end
有没有办法将 f2 转换为常规子字符串而不是 "Array{String,1}" 所以我可以使用包含?,否则我应该如何实现这些函数?
解决方案
在您的第二个示例中,calledFileFunction
似乎是一个字符串数组。所以contains
需要应用于(要重命名...)数组的每个元素...
@show typeof(...)
如果你刚开始,插入你的代码是一件有用的事情。
这样的事情可能会做:
for f3 in filter(x -> startswith(x, "test"), readdir())
filecontents = readlines(f3)
fileLength=length(filecontents)
if any(map(f -> contains(f, "julia"), filecontents))
println("$f3 contains \"julia\"")
end
end
推荐阅读
- mysql - 如何在一个脚本中同时执行 MySQL 查询和 bash 命令?
- dynamics-crm - 实体上的汇总字段多久重新计算一次?
- html - 有没有办法指定相对边框宽度和最小内容宽度?
- java - 从未知字符串中检索枚举值
- html - 未为 document.querySelector 定义文档
- amazon-web-services - 诊断 AWS 应用程序负载均衡器的缓慢响应时间
- swift - 如何在spritekit tilemap中设置tileset的不透明度?
- matlab - 如何以矢量化方式从matlab中的TSP距离矩阵计算所有行程的长度
- html - 如何删除div元素之间的空间?
- r - 在 R Shiny 中操作用户上传的文件/数据