是否有JDK方法可以知道我是否包含111
,222
,333
等所有非不同数字。
我知道我们可以通过循环来实现,但有更好的方法吗?
答案 0 :(得分:4)
您可以将String::matches与正则表达式(\d)\1*
一起使用,如下所示:
boolean distinct = String.valueOf(111).matches("(\\d)\\1*");
答案 1 :(得分:1)
没有内置方法可以帮助您,但是,另一种变体是:
public static boolean someMethodName(String input){
return input.chars().distinct().limit(2).count() == 1;
}
然后,如果需要,您可以在对参数进行操作之前对其执行验证。即它是null
等等。
答案 2 :(得分:0)
我认为正则表达式可以帮助你,但在人说不正确之前。它会帮助你。
String.valueOf( yourNumber ).matches( "\\d{2,}" )
这是你问题的正确正则表达式。