- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试创建一个散列,例如 ubuntu 中的文件/etc/mime.types,它将每一行拆分为空格和“非单词”正则表达式搜索。下面是我的代码。但我无法让它正确输出零值。它们与其他所有东西一起输出,但如果你用 pp 漂亮地打印它们,一些返回为 nil。有什么建议吗?
#!/usr/bin/ruby
mime = Hash.new()
File.open("/etc/mime.types", "r") do |file|
file.each_line do |line|
next if line[0] == ?#
next if line == "\n"
key, value = line.chomp.split(/\W+\s/)
mime[key] = value
end
end
if (mime.has_value?('nil') == true)
mime.sort.each {|key,value| puts "#{key} has no extensions."}
elsif(mime.has_value?('nil') == false)
mime.sort.each {|key, value| puts "#{key} has extensions #{value}"}
end
这只是输出的尾端,最容易看到,因为执行时它就在前面
我希望
video/quicktime has extensions qt mov
**video/vnd.fvt has no extensions**
**video/vnd.motorola.video has no extensions
video/vnd.motorola.videop has no extensions**
video/vnd.mpegurl has extensions mxu
**video/vnd.mts has no extensions no**
video/vnd.nokia.interleaved-multimedia has extensions
**video/vnd.vivo has no extensions**
video/x-flv has extensions flv
video/x-la-asf has extensions lsf lsx
video/x-matroska has extensions mpv mkv
video/x-mng has extensions mng
video/x-ms-asf has extensions asf asx
video/x-ms-wm has extensions wm
video/x-ms-wmv has extensions wmv
video/x-ms-wmx has extensions wmx
video/x-ms-wvx has extensions wvx
video/x-msvideo has extensions avi
video/x-sgi-movie has extensions movie
x-conference/x-cooltalk has extensions ice
x-epoc/x-sisx-app has extensions sisx
x-world/x-vrml has extensions vrm vrml wrl
但是我明白了
video/quicktime has extensions qt mov
video/vnd.fvt has extensions
video/vnd.motorola.video has extensions
video/vnd.motorola.videop has extensions
video/vnd.mpegurl has extensions mxu
video/vnd.mts has extensions
video/vnd.nokia.interleaved-multimedia has extensions
video/vnd.vivo has extensions
video/x-flv has extensions flv
video/x-la-asf has extensions lsf lsx
video/x-matroska has extensions mpv mkv
video/x-mng has extensions mng
video/x-ms-asf has extensions asf asx
video/x-ms-wm has extensions wm
video/x-ms-wmv has extensions wmv
video/x-ms-wmx has extensions wmx
video/x-ms-wvx has extensions wvx
video/x-msvideo has extensions avi
video/x-sgi-movie has extensions movie
x-conference/x-cooltalk has extensions ice
x-epoc/x-sisx-app has extensions sisx
x-world/x-vrml has extensions vrm vrml wrl
最佳答案
字符串 'nil'
和对象 nil
不是一回事。您的 mime.has_value?('nil')
正在询问 Hash 其值之一是否是字符串 'nil'
,而不是对象 nil
。你(认为你)想要这个:
if(mime.has_value?(nil))
mime.sort.each {|key,value| puts "#{key} has no extensions."}
else
mime.sort.each {|key, value| puts "#{key} has extensions #{value}"}
end
和has_value?
返回 true
或 false
因此您无需将其返回值与 true
和 false
进行比较,只需 if(mime.has_value?(nil)) ... else
就足够了。
但这仍然无法满足您的需求。您的 if
将声称 all 键没有扩展名,如果其中至少一个没有扩展名,那没有多大意义。你想用这样的东西遍历 mime
:
mime.each do |k, v|
if(v.nil?)
puts "#{k} has no extensions"
else
puts "#{k} has extensions #{v}"
end
end
关于ruby - 使用正则表达式对散列进行行拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9510084/
我有一个加号/减号按钮,希望用户不能选择超过 20 个但不知道如何让它工作。我尝试使用 min="1"max="5 属性,但它们不起作用。这是我的代码和一个 fiddle 链接。https://jsf
我正在尝试复制顶部底部图,如示例 here但它没有正确渲染(紫色系列有 +ve 和 -ve 值,绿色为负值)留下杂乱的人工制品。我也在努力创建一个玩具示例来复制这个问题,所以我希望尽管我缺乏数据,但有
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 6 年前。 社区去年审查了是
这个问题在这里已经有了答案: Adding two positive integers gives negative answer.Why? (4 个答案) 关闭 5 年前。 我遇到了一个奇怪的问题
有谁知道如何将字符串值类型 -4,5 或 5,4 转换为 double -4.5 或 5.4? 最佳答案 只需使用 Double.parseDouble(Locale, String); 糟糕,我很困
我正在尝试根据 TextBlob 分类插入一个仅包含“正”或“负”字符串的新数据框列:对于我的 df 的第一行,结果是 ( pos , 0.75, 0.2499999999999997)我想要' 正
我对 VBA 非常陌生,无法理解如何在一个循环中完成 2 个任务。我非常感谢您的帮助。 我已经能够根据第 3 列中的数据更改第 2 列中的数值,但我不明白如何将负值的字体更改为红色。 表格的大小每月都
欢迎, 我正在使用 jquery 通过 POST 发送表单。 这就是我获得值(value)的方式。 var mytext = $("#textareaid").val(); var dataStrin
double d = 0; // random decimal value with it's integral part within the range of Int32 and always p
我有这个字符串: var a='abc123#xyz123'; 我想构建 2 个正则表达式替换函数: 1) 用 '*' 替换所有确实有 future '#'的字符(不包括'#') 所以结果应该是这样的
我正在使用 DialogFragment。当用户从 Gmail 平板电脑应用程序的屏幕与下面示例图片中的编辑文本进行交互时,我希望正面和负面按钮保持在键盘上方。 在我的尝试中不起作用,这是我的 Dia
从组装艺术一书中,我复制了这句话: In the two’s complement system, the H.O. bit of a number is a sign bit. If the H.O
是否有更好更优雅的方法来实现下面的简单代码(diffYear、A 和 B 是数字): diffYear = yearA - yearB; if (diffYear == 0) { A = B
我正在设计一种语言,并尝试确定 true 应该是 0x01 还是 0xFF。显然,所有非零值都将转换为 true,但我正在尝试确定确切的内部表示。 每种选择的优点和缺点是什么? 最佳答案 没关系,只要
在我的 dialogfragment 类的 OnCreateDialog 中,我正在这样做: AlertDialog.Builder builder = new AlertDialog.Builder
这个问题在这里已经有了答案: Resolving ambiguous overload on function pointer and std::function for a lambda usin
我偶然发现了一个奇怪的 NSDecimalNumber 行为:对于某些值,调用 integerValue、longValue、longLongValue 等,返回意想不到的值(value)。示例: l
这个问题在这里已经有了答案: Resolving ambiguous overload on function pointer and std::function for a lambda using
我有这个正则表达式来测试用户输入是否有效: value.length === 0 || value === '-' || (!isNaN(parseFloat(value)) && /^-?\d+\.
我想用高斯混合模型拟合数据集,数据集包含大约 120k 个样本,每个样本有大约 130 个维度。当我使用 matlab 执行此操作时,我运行脚本(簇号为 1000): gm = fitgmdist(d
我是一名优秀的程序员,十分优秀!