java判断座机号格式是否正确,应该怎么判断,求大神详细解答!
题目:运行后有上图效果,判断座机区号和后面的数字,还有一个“-”号,应该怎么写,没思路啊!!!...
题目:
运行后有上图效果,判断座机区号和后面的数字,还有一个“-”号,应该怎么写,没思路啊!!! 展开
运行后有上图效果,判断座机区号和后面的数字,还有一个“-”号,应该怎么写,没思路啊!!! 展开
5个回答
展开全部
/**
* 思路:
* 1.咱作用就是把困难留给自己,把方便留给别人,你限制人家输入?不可取!
* 2.随便别人怎么输入,不管输不输入"-",你用字符串接受掉,然后过滤掉非数字即可!
* 3.就是判断,你4+7=11我没算错吧?哈哈..过滤后的字符串不是11位就算不OK?懂了?
* 4.如果长度合法了,那就输出,输出截取前4位,OK你自己加"-"然后加上后面7位简单吧?
* 5.废话结束,看演示,弄的不好请丢砖头!
*/
import java.util.Scanner;//标准设备输入流,必备!
public class Phone {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(true) {
System.out.println("请输入坐鸡电话号码:11位合法");
String str=sc.nextLine().replaceAll("[^\\d]", "");
if(str.length()!=11) {
System.out.println("输入错误请查看规则:\r\n");
}else {
System.out.println("你输入的是:"+(str.substring(0,4)+"-"+(str.substring(4))));
sc.close();
break;
}
}
}
}
展开全部
用正则表达式[判断,简单例子,你可以去完善.
import java.util.Scanner;
public class AAA {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
String str=scan.next();
String num="^0\\d{3}-\\d{7}$";//判断座机号
String mp="^1\\d{10}$";//判断手机号
if(str.matches(num)){
System.out.println("座机号:"+str);
}else if(str.matches(mp)){
System.out.println("手机号:"+str);
}else{
System.out.println("错误格式");
}
}
}
import java.util.Scanner;
public class AAA {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
String str=scan.next();
String num="^0\\d{3}-\\d{7}$";//判断座机号
String mp="^1\\d{10}$";//判断手机号
if(str.matches(num)){
System.out.println("座机号:"+str);
}else if(str.matches(mp)){
System.out.println("手机号:"+str);
}else{
System.out.println("错误格式");
}
}
}
更多追问追答
追问
没有学过正则表达,能不能用字符串方法判断,indexOf(),和subString 等
追答
可以从“-”处将字符串分割成两个小字符串,再判断这两个的长度是否是4和7,再判断是否全是数字(Integer.parseInt(str))
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、先判断座机号码中除去-后是否是纯数字,不是则提示格式不正确
2、完成第一步验证后,将座机号按-标识来分割成String数组,判断数组中第一个元素长度是否是4位,判断数组中第二个元素是否是7位,大概就是下面这个样子,不对的地方勿喷谢谢
public static void main(String[] args) {
String telePhone = "0100-7856789";
String rep = telePhone.replaceAll("-", "");
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(rep);
if( !isNum.matches() ){
System.out.println("座机号格式不正确");
}
String strs[] = telePhone.split("-");
if(strs[0].length()==4&&strs[1].length()==7){
System.out.println("座机号符合区号是4位电话号是7位的要求!");
}else{
System.out.println("座机号不符合区号是4位电话号是7位的要求!");
}
}
2、完成第一步验证后,将座机号按-标识来分割成String数组,判断数组中第一个元素长度是否是4位,判断数组中第二个元素是否是7位,大概就是下面这个样子,不对的地方勿喷谢谢
public static void main(String[] args) {
String telePhone = "0100-7856789";
String rep = telePhone.replaceAll("-", "");
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(rep);
if( !isNum.matches() ){
System.out.println("座机号格式不正确");
}
String strs[] = telePhone.split("-");
if(strs[0].length()==4&&strs[1].length()==7){
System.out.println("座机号符合区号是4位电话号是7位的要求!");
}else{
System.out.println("座机号不符合区号是4位电话号是7位的要求!");
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.util.Scanner;
public class Student {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.print("输入一个电话(如有区号,请不要加-):");
int a=s.nextInt();
String str=String.valueOf(a);
if(str.length()==7||str.length()==8){System.out.println("输入的电话号码正确");}
else{
if(str.length()==11||str.length()==12){
System.out.println("输入的电话号码带有区号,正确");
}else{
System.out.println("输入的号码不合标准,请检查是否加了-");
}
}
s.close();
}
}
public class Student {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.print("输入一个电话(如有区号,请不要加-):");
int a=s.nextInt();
String str=String.valueOf(a);
if(str.length()==7||str.length()==8){System.out.println("输入的电话号码正确");}
else{
if(str.length()==11||str.length()==12){
System.out.println("输入的电话号码带有区号,正确");
}else{
System.out.println("输入的号码不合标准,请检查是否加了-");
}
}
s.close();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用正则表达式。。。
更多追问追答
追问
正则表达式还没学,用字符串的方法怎么判断
追答
.equals("-");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询