想写一个pattern检验name满足以下形式:"D12#H2#T0#C555#"或"D12#H2#T0#"或"D12#H2#"或"D12#",数字不固定。代码如下。问题是System.out.println("" + isServiceObject("D2#C2#")); 期望是false, 结果是 true。怎么写? public static boolean isServiceObject(String name) { String patternStr = "D[0-9]+#(H[0-9]+#){0,1}(T[0-9]+#){0,1}(C[0-9]+#){0,1}"; Pattern pattern = Pattern.compile(patternStr); Matcher matcher = pattern.matcher(name); return matcher.matches(); } public static void main(String args[]) { System.out.println("" + isServiceObject("D12#H2#T0#C555#"));//true System.out.println("" + isServiceObject("D12#H2#"));//true System.out.println("" + isServiceObject("D2#H2#"));//true System.out.println("" + isServiceObject("D22#"));//true System.out.println("" + isServiceObject("D2#C2#"));//false System.out.println("" + isServiceObject("D2#H#"));//false System.out.println("" + isServiceObject("D2H2#"));//false }
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货