第一问。
//5到11位。
class Regex
{
public static void main(String[] args)
{
checkQQ();
}
public static void checkQQ_1()
{
String qq = "443545656";
String regex = "[1-9] [0-9] {4,10}";//这里老毕说第一位是1-9,第二位是0-9,那后面的第三、第四......都不要判断了??
//这个4-10是控制第二位出现的次数? 还是包含第二位和以后的数?4-10包含4和10吗??
boolean flag = qq.matches(regex);
[0-9]{m,n}--------这句话的意思是中括号里面的---内容---在中括号的------后面----出现--大括号--里面的n到m次,是次数哦。
if(flag)
System.out.println(qq);
else
System.out.println("您输入非法字符");
}
public static void checkQQ()
{
String qq = "2345666a6";
int len = qq.length();
if(len>=5 && len<=11)
{
if(!qq.startsWith("0"))
{
char[] arr = qq.toCharArray();
boolean flag = true;
for(int x=0; x<arr.length; x++)
{
if(! (arr[x]>'0' && arr[x]<'9'))//这里加个单引号判断是什么意思?字符??有点不太明白,希望具体点。
{
你arry[]里面装的是字符数组,既然是字符和字符进行大小比较,那么'0','9'也必须加上单引号'',因为只有字符用''单引号括起来的
因为是大小的比较,那么运算时都自动转换成了整数来算,因为每个字符都有自己对应的数值
flag = false;
break;
}
}
if(flag)
{
System.out.println("qq:"+qq);
}
else
{
System.out.println("出现非法字符");
}
}
else
{
System.out.println("不可以0开头");
}
}
else
{
System.out.println("长度错误");
}
}
}
第二问。
public static void checkMail()
{
String mail = "abc12@sina.com";
mail = "1@1.1";
String reg = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+([url=file://\\.[a-zA-Z]+)+]\\.[a-zA-Z]+)+";//[/url]这里[a-zA-Z0-9]是不是就是代表a-z和A-Z和0-9这些所有字母和数字的交集?[a-zA-Z0-9]表示所有字母和0到9的数字。哥,建议你去看api的正则表达式那块,都有格式的
reg = "\\w+@\\w+(\\.\\w+)+";
System.out.println(mail.matches(reg));
} |