这种数据过滤可以用正则表达式吗? ((\d)?)?这样行吗?我这儿没jre,你试试吧! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个方法可以,如果实在没办法就用这个吧。import java.util.regex.*;class TestRegex{ public static void main(String[] args) { //System.out.println(Pattern.matches("(\\d\\d)\\l\\l", "12121212")); System.out.println(checkNumberLoop("12121212")); System.out.println(checkNumberLoop("68686868")); System.out.println(checkNumberLoop("118118118")); System.out.println(checkNumberLoop("118118117")); System.out.println(checkNumberLoop("118")); } public static boolean checkNumberLoop(String s) { System.out.print(s + " "); if (s==null || s.length()==0) { return false; } if (!(Pattern.matches("\\d*",s))) { return false; } //System.out.println("All digit"); int l = s.length(); for (int i = 1; i <= l/2 + 1 ; i++ ) { if ( l % i == 0) { //System.out.println("%=00000000000000000000000000"); int segCount = l/i; int segLength = i; String seg = s.substring(0, 0+segLength); //System.out.println("seg: " + seg); int j; for (j = 1; j < segCount; j++) { int start = j*segLength; //System.out.println("j=" + j + " substring(): " + s.substring(start, start+segLength)); if (seg.equals(s.substring(start, start+segLength))) { continue; } else { break; } } if (j == segCount) { return true; } } } return false; }} 正则表达式:(\d+)\1+(使用时需要对"\"加转义符)。测试例子如下:String[] test = { "hello a",//false "1212",//true "11221122",//true "12",//false "123123123",//true "1234123123",//false "121211",//false "" };//falseString pa = "(\\d+)\\1+";Pattern p = Pattern.compile(pa); for (int i = 0; i < test.length; i++) System.out.println(test[i] + "--" + p.matcher(test[i]).matches());刚学了学正则表达式,不敢肯定完全正确,如果有问题请指教。 又是乱码问题 数据库同步 急,Calendar.MONTH的问题? 如何设计类的方法 请问如何把一个CLASS文件制作成一个双击就可以执行的文件,还有就是在其他人机子上没有JRE也能运行~~谢谢 在XP下面设置环境变量 谁帮我解决一下这个入门问题? 有关jbuilder一问 初学者问题,请指教 请教一个jbulider4的中文问题! java如何申明一个类的属性。 怎么运行小应用程序??
import java.util.regex.*;
class TestRegex
{
public static void main(String[] args)
{
//System.out.println(Pattern.matches("(\\d\\d)\\l\\l", "12121212"));
System.out.println(checkNumberLoop("12121212"));
System.out.println(checkNumberLoop("68686868"));
System.out.println(checkNumberLoop("118118118"));
System.out.println(checkNumberLoop("118118117"));
System.out.println(checkNumberLoop("118"));
}
public static boolean checkNumberLoop(String s)
{
System.out.print(s + " ");
if (s==null || s.length()==0)
{
return false;
}
if (!(Pattern.matches("\\d*",s)))
{
return false;
}
//System.out.println("All digit");
int l = s.length();
for (int i = 1; i <= l/2 + 1 ; i++ )
{
if ( l % i == 0)
{
//System.out.println("%=00000000000000000000000000");
int segCount = l/i;
int segLength = i;
String seg = s.substring(0, 0+segLength);
//System.out.println("seg: " + seg);
int j;
for (j = 1; j < segCount; j++)
{
int start = j*segLength;
//System.out.println("j=" + j + " substring(): " + s.substring(start, start+segLength));
if (seg.equals(s.substring(start, start+segLength)))
{
continue;
}
else
{
break;
}
}
if (j == segCount)
{
return true;
}
}
}
return false;
}
}
(使用时需要对"\"加转义符)。
测试例子如下:
String[] test =
{
"hello a",//false
"1212",//true
"11221122",//true
"12",//false
"123123123",//true
"1234123123",//false
"121211",//false
"" };//falseString pa = "(\\d+)\\1+";
Pattern p = Pattern.compile(pa);
for (int i = 0; i < test.length; i++)
System.out.println(test[i] + "--" + p.matcher(test[i]).matches());刚学了学正则表达式,不敢肯定完全正确,如果有问题请指教。