一、判断字符串长度是否大于8
import java.util.function.Predicate; public class demo_predict { public static void main(String[] args) { String s1 = "abcdefg"; System.out.println(test_length((String str) ->str.length() >= 8, s1)); } private static boolean test_length(Predicate<String> pre, String str) { return pre.test(str); } }
false
二、判断字符串长度是否大于5且是否包含特定字母
return pre1.test(str) && pre2.test(str);等价于return pre1.and(pre2).test(str);
import java.util.function.Predicate; public class test_pre_str { public static void main(String[] args) { String str = "abcedf"; boolean bo = methed(s -> { return s.length() > 5; }, s -> { return s.contains("a"); }, str); System.out.println(bo); } private static boolean methed(Predicate<String> pre1, Predicate<String> pre2, String str) { // return pre1.test(str) && pre2.test(str); return pre1.and(pre2).test(str); } }
true
三、判断一个字符串名单,输出姓名长度为4且性别为女
import java.util.ArrayList; import java.util.function.Predicate; public class demp_predict { public static void main(String[] args) { String[] str_name={"古力娜则 女","欧阳西蒙 男","卧龙轩 女","哈大大奖 女","ccdd 女"}; ArrayList<String> al = test_arrlist((str) -> { return str.split(" ")[0].length() >= 4; }, (str) -> { return str.split(" ")[1].equals("女"); }, str_name); System.out.println(al.toString()); } private static ArrayList<String> test_arrlist(Predicate<String> pre1,Predicate<String> pre2,String[] arr) { ArrayList<String> list = new ArrayList<>(); for (String s : arr) { if(pre1.and(pre2).test(s)){ list.add(s); } } return list; } }
[古力娜则 女, 哈大大奖 女, ccdd 女]