java判断座机号格式是否正确,应该怎么判断,求大神详细解答!

题目:运行后有上图效果,判断座机区号和后面的数字,还有一个“-”号,应该怎么写,没思路啊!!!... 题目:

运行后有上图效果,判断座机区号和后面的数字,还有一个“-”号,应该怎么写,没思路啊!!!
展开
 我来答
百毒千毒
2018-03-13 · TA获得超过4737个赞
知道大有可为答主
回答量:2504
采纳率:88%
帮助的人:665万
展开全部
/**
 * 思路:
 * 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;
}
}
}
}

耳东故事会
2015-06-02 · 阅尽百态,看遍冷暖,精彩故事。
耳东故事会
采纳数:125 获赞数:457

向TA提问 私信TA
展开全部
用正则表达式[判断,简单例子,你可以去完善.
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))
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
骑驴找马寻骡子
推荐于2018-03-13 · TA获得超过125个赞
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:148万
展开全部
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位的要求!");
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
璩山彤2k
2016-01-10 · TA获得超过296个赞
知道小有建树答主
回答量:386
采纳率:75%
帮助的人:74.8万
展开全部
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();
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的饭盆
2015-06-02 · 超过10用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:42.8万
展开全部
用正则表达式。。。
更多追问追答
追问
正则表达式还没学,用字符串的方法怎么判断
追答
.equals("-");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式