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

作者&投稿:澄肺 (若有异议请与网页底部的电邮联系)
大家好,我是java新手入门,我想问怎么判断座机号码是否正确。格式****-*******~

学习java中,目前是学习的第5天,写的不好勿喷:
package baiduknow.basic;
import java.util.Scanner;
/*判断座机号码是否正确。格式****-*******座机号一共是十二位,也就是说。下标的第四位必须为-而后面必须为7位数字。区号必须为4位。*/public class ZuoJiHaoMaPanDuan {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入座机号码:");
String str=sc.next();
boolean flags=false;
// 判断
if(str.length()!=12||str.charAt(4)!='-'||str.charAt(5)==0){
System.out.println("座机号码错误!");
return;
}

int i;
for(i=0;i<12;i++){
if(i==4||i==5){
continue;
}else{
if(str.charAt(i)>='0'&&str.charAt(i)<='9'){
continue;
}else{
break;
}
}
}
if(i>=12){
flags=true;
}
// 判断结果;
if(true==flags){
System.out.println("座机号码正确!");
}else{
System.out.println("座机号码错误!");
}
}
}

/**
* 验证是否是手机号码
*
* @param str
* @return
*/
public static boolean isPhone(String str) {
if (ValidationUtils.isEmpty(str)) {
return false;
}
Pattern pattern = Pattern.compile("^(1[3,4,5,7,8][0-9])\\d{8}$");
Matcher matcher = pattern.matcher(str);
boolean b = matcher.matches();
return b;
}
/**
* 是否是座机电话号码
*
* @param str
* @return
*/
public static boolean isFixedLine(String str) {
if (ValidationUtils.isEmpty(str)) {
return false;
}
Pattern pattern = Pattern
.compile("^([0-9]{3}-?[0-9]{8})|([0-9]{4}-?[0-9]{7})$");
Matcher matcher = pattern.matcher(str);
boolean b = matcher.matches();
return b;
}

/**
 * 思路:
 * 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("输入错误请查看规则:
");
}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("错误格式");
}
}
}

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位的要求!");
}
}

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();
}

}

用正则表达式。。。


座机打电话时 网络没信号
所以 电话线分了两条线,虽然用了那个分离器 但 相当于没用,分离器是 分离信号频率的,一根电话线进,出来两根线,这两根线一个接电脑 一个接电话,这样以后,打电话时 才不会掉线, 不知道 你的问题 是不是这个原因,

西平县17821894520: 大家好,我是java新手入门,我想问怎么判断座机号码是否正确.格式**** - ******* -
逮威开思: 学习java中,目前是学习的第5天,写的不好勿喷: package baiduknow.basic; import java.util.Scanner; /*判断座机号码是否正确.格式****-*******座机号一共是十二位,也就是说.下标的第四位必须为-而后面必须为7位数字.区号必须为4位....

西平县17821894520: java用字符串怎样判断手机号码和座机号码输入是否正确并同时打印出错误
逮威开思: 首先判断输入的是不是全部是由数字组成的,其次决断字符串的长度,再判断字符串的第一个字符是不是1.

西平县17821894520: java用字符串怎样判断手机号码和座机号码输入是否正确并同时打印出错误 -
逮威开思: 那要看你什么叫正确的标准了使用正则表达式\\d{11},只能查找出11位都是数字.正确与否是否还需要加入别的判断条件?比如开头必须是1860等等.这些就看你怎么判断了.

西平县17821894520: Java编写一个程序,判断输入格式是否合法 -
逮威开思: 这里的号码是手机号码么,可以使用正则表达式判断,判断点为:0~9的数字,字符串的长度

西平县17821894520: 如何用JavaScript对输入的电话格式是否正确进行验证?
逮威开思: &lt;input type="text" id="phonenum" name="phonenum" onkeyup="ChkPhone(this.value)"/&gt; function ChkPhone(val) { if(val.length&lt;7) return false; //号码少于7位错误返回 var t = /^0\d{2,3}\-\d{7,8}$/; //区号-号码 if(!t.test(val)){ alert('输入的电话号码不正确!'); return false; //号码不正确错误返回 } } 只是大体的样子,具体要求再具体写

西平县17821894520: Java编程如何判断文本框中输入的ip是否正确 -
逮威开思: 用正则表达式 ((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))

西平县17821894520: 如何用JavaScript对输入的电话格式是否正确进行验证? -
逮威开思: <input type="text" id="phonenum" name="phonenum" onkeyup="ChkPhone(this.value)"/> <br><br>function ChkPhone(val) <br>{ <br>if(val.length<7) return false; //号码少于7位错误返回 <br>var t = /^0\d{2,3}\-\d{7,8}$/; //区号-号码 <br>...

西平县17821894520: java中如何用jq判断邮箱格式是否正确 -
逮威开思: function check(){<br> if($("#email1").val()==""){<br> alert("邮箱不能为空");<br> $("#tips").html("不能输入空的");<br> return FALSE;<br> }<br> if(!$("#email1").val().match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)){<br> alert("格式不正确!请重新输入");<br> $("#email1").focus();<br> }<br> }

西平县17821894520: java中拆分字符串座机必须以字符“ - ”连接,“ - ”前必须是四位数,“ - ”后必须是7位数 -
逮威开思: 你是要校验输入的格式是否正确?还是想从输入的字符串中拿到你想要的一部分?校验的话用正则表达式就好了后者就用简单的字符串截取嘛,substring()就好了

西平县17821894520: 在java中如何判断输入的四位数表示出生格式正确性比如0101或者是01/01其它格式输入就提示错误? -
逮威开思: 正则表达式 应该可以 只是个人真心是没记住怎么写 所以用java 的字符串处理, 也很容易,就是判断的多一点 public static void main(String[] args) { System.out.println(checkBirth("00/31")); } public static boolean checkBirth(String birth){ //检测是...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网