我有@Nullable
private Activity getActivity() {
Activity currentActivity = null;
Collection resumedActivities = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(RESUMED);
if (resumedActivities.iterator().hasNext()){
currentActivity = (Activity) resumedActivities.iterator().next();
}
return currentActivity;
}
个FileList
和*.js
个扩展名。如何将其拆分为两个*.tc
数组,一个仅包含FileList
个文件,另一个包含*.js
个文件?
答案 0 :(得分:4)
您可以使用File.extname
来获取文件名的扩展名,并使用Array#group_by
将数组成员分组,这些成员具有相似之处:
result = [ "aaa.js", "bbb.js", "ccc.js",
"xxx.tc", "yyy.tc", "zzz.tc" ].group_by { |fname| File.extname(fname) }
=> { ".js" => ["aaa.js", "bbb.js", "ccc.js"],
".tc" => ["xxx.tc", "yyy.tc", "zzz.tc"] }
现在您有一个Hash
包含两个数组(result[".js"]
和result[".tc"]
),这些数组根据其扩展名包含文件名。
答案 1 :(得分:2)
["aaa.js", "bbb.js", "ccc.js",
"xxx.tc", "yyy.tc", "zzz.tc" ].partition do |e|
e[/(?<=\.).*\z/] == "tc"
end
#⇒ [["xxx.tc", "yyy.tc", "zzz.tc"],
# ["aaa.js", "bbb.js", "ccc.js"]]
或更明确:
["aaa.js", "bbb.js", "ccc.js",
"xxx.tc", "yyy.tc", "zzz.tc" ].partition(&/\.tc\z/.method(:=~))