[英]validating Phone number in from of (xxx) xxx-xxxx using String method split only
我必须以(xxx) xxx-xxxx
的格式拆分电话号码,我搜索了一下,但我找到的解决方案是关于使用正则表达式,但我被要求使用类String
split方法。 我在下面显示的一个小程序中解决了这个问题但有没有办法用更少的代码行完成它?
package StringReview;
import java.util.Scanner;
public class StringExercise {
static Scanner scanner = new Scanner (System.in);
static String [] number;
static String array[] ;
public static void main(String[] args) {
System.out.println("Enter a phone number: with () and -");
String phoneNumber = scanner.nextLine();
array = phoneNumber.split(" ");
for(String st : array ){
if(st.contains("-")){
number=cut(st);
}else
System.out.println(st);
}
for (String str : number){
System.out.println(str);
}
}
private static String[] cut(String st) {
return st.split("-");
}
}
String phoneNumber = "(123)456-7890";
String[] parts = phoneNumber.split("\\D+");
for(String part : parts) {
System.out.println(part);
}
String input = "(xxx) xxx-xxxx"
String[] arrFirst = input.split(" ");
String[] arrSecond = arrFirst[1].split("-");
System.out.println(arrFirst[0] + " " +arrSecond[0] + "-" + arrSecond[1]);
//By Benjamin Manford
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class tel {
public static boolean validatePhone(String phone){
//the range of numbers is between 9 and 10. you can make it any range you want
return phone.matches("^[0-9]{9,10}$");
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter Phone Number: ");
String phone = input.nextLine();
while(validatePhone(phone) != true) {
System.out.print("Invalid PhoneNumber!");
System.out.println();
System.out.print("Enter Phone Number: ");
phone = input.nextLine();
System.out.println("Correct telephone number");
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.