The problem
Write a perform that accepts a string, and returns true whether it is within the type of a cellphone quantity.
Assume that any integer from 0-9 in any of the spots will produce a sound cellphone quantity.
Solely fear concerning the following format:
(123) 456-7890 (don’t overlook the area after the shut parentheses)
Examples:
"(123) 456-7890" => true
"(1111)555 2345" => false
"(098) 123 4567" => false
The answer in Java code
Possibility 1:
public class Answer {
public static boolean validPhoneNumber(String phoneNumber) {
return phoneNumber.matches("(d{3}) d{3}-d{4}");
}
}
Possibility 2:
public class Answer {
public static boolean validPhoneNumber(String phoneNumber) {
char[] cStr = phoneNumber.toCharArray();
if(cStr[0] != '(') return false;
if(cStr[4] != ')') return false;
if(cStr[5] != ' ') return false;
if(cStr[9] != '-') return false;
for(int i = 1; i < cStr.size; i++){
if(i != 4 && i != 5 && i != 9){
if(!Character.isDigit(cStr[i])) return false;
}
}
return true;
}
}
Possibility 3:
public class Answer {
public static boolean validPhoneNumber(String phoneNumber) {
return phoneNumber.equalsIgnoreCase("(123) 456-7890");
}
}
Take a look at circumstances to validate our answer
import org.junit.Take a look at;
import static org.junit.Assert.assertEquals;
public class PhoneExampleTests {
@Take a look at
public void assessments() {
assertEquals(true, Answer.validPhoneNumber("(123) 456-7890"));
assertEquals(false, Answer.validPhoneNumber("(1111)555 2345"));
assertEquals(false, Answer.validPhoneNumber("(098) 123 4567"));
}
}
Extra take a look at circumstances
import org.junit.Take a look at;
import static org.junit.Assert.assertEquals;
public class PhoneTests {
@Take a look at
public void basicTests() {
String msg = "Observe the formatting directions fastidiously";
assertEquals(msg, true, Answer.validPhoneNumber("(123) 456-7890"));
assertEquals(msg, false, Answer.validPhoneNumber("(1111)555 2345"));
assertEquals(msg, false, Answer.validPhoneNumber("(098) 123 4567"));
assertEquals(msg, false, Answer.validPhoneNumber("(123)456-7890"));
}
@Take a look at
public void formCharTests() {
String msg = "Take note of the formatting of the string and surrounding characters";
assertEquals(msg, false, Answer.validPhoneNumber("abc(123)456-7890"));
assertEquals(msg, false, Answer.validPhoneNumber("(123)456-7890abc"));
assertEquals(msg, false, Answer.validPhoneNumber("abc(123)456-7890abc"));
}
@Take a look at
public void charTests() {
String msg = "Watch out with characters surrounding the cellphone quantity";
assertEquals(msg, false, Answer.validPhoneNumber("abc(123) 456-7890"));
assertEquals(msg, false, Answer.validPhoneNumber("(123) 456-7890abc"));
assertEquals(msg, false, Answer.validPhoneNumber("abc(123) 456-7890abc"));
}
@Take a look at
public void badCharTests() {
String msg = "Watch out with non-digit characters inside cellphone quantity";
assertEquals(msg, false, Answer.validPhoneNumber("(123) 456-78f0"));
assertEquals(msg, false, Answer.validPhoneNumber("(123) 4e6-7890"));
assertEquals(msg, false, Answer.validPhoneNumber("(*23) 456-7890"));
}
}