一、要求
StringChecker类用于检查字符串是否有效。
public class StringChecker
{
private String symbol;
public StringChecker(String symbol)
{
this.symbol=symbol;
}
/** Print s true if str is valid. */
public void isValid(String str)
{
System.out.println("false");
}
public String getSymbol()
{
return symbol;
}
}
现有一个CodeWordChecker类继承StringChecker类,
CodeWordChecker类的具体要求:
1、包含三个成员属性,int minLen,int maxLen,String symbol,其中minLen默认为6,maxLen默认为20。
2、包含一个具有一个参数的构造函数,参数(String symbol)表示待检查的字符串中不能出现的字符串。
3、包含一个具有三个参数的构造函数,参数(int minLen,int maxLen,String symbol)。前两个参数分别待检查字符串表示最小和最大长度,第三个参数表示待检查的字符串中不能出现的字符串。
4、isValid方法返回值为void类型,用于打印结果(true or false)。
CodeWordChecker sc1 = new CodeWordChecker(a1,a2,"$");
sc1.isValid("happy");
sc1.isValid("happy$");
sc1.isValid("Code");
sc1.isValid("happyCode");
CodeWordChecker sc2 = new CodeWordChecker("pass");
sc2.isValid("MyPass");
sc2.isValid("Mypassport");
sc2.isValid("happy");
sc2.isValid("1,000,000,000,000,000");
参考代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a1=input.nextInt();
int a2=input.nextInt();
CodeWordChecker sc1 = new CodeWordChecker(a1,a2,"$");
sc1.isValid("happy");
sc1.isValid("happy$");
sc1.isValid("Code");
sc1.isValid("happyCode");
CodeWordChecker sc2 = new CodeWordChecker("pass");
sc2.isValid("MyPass");
sc2.isValid("Mypassport");
sc2.isValid("happy");
sc2.isValid("1,000,000,000,000,000");
}
}
class StringChecker
{
private String symbol;
public StringChecker(String symbol)
{
this.symbol=symbol;
}
/** Returns true if str is valid. */
public void isValid(String str)
{
System.out.println("StringChecker");
}
public String getSymbol()
{
return symbol;
}
}
class CodeWordChecker extends StringChecker {
//需要完成的代码
}
提示:
字符串长度计算:
String s="abcd";
int a=s.length();//a的结果为4
字符串检索计算:
String s="abcd";
int b=s.indexof("f");//查找s中是否有f字符串,不存在返回-1,存在返回第一次出现的位置
二、代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a1=input.nextInt();
int a2=input.nextInt();
CodeWordChecker sc1 = new CodeWordChecker(a1,a2,"$");
sc1.isValid("happy");
sc1.isValid("happy$");
sc1.isValid("Code");
sc1.isValid("happyCode");
CodeWordChecker sc2 = new CodeWordChecker("pass");
sc2.isValid("MyPass");
sc2.isValid("Mypassport");
sc2.isValid("happy");
sc2.isValid("1,000,000,000,000,000");
}
}
class StringChecker
{
private String symbol;
public StringChecker(String symbol)
{
this.symbol=symbol;
}
/** Returns true if str is valid. */
public void isValid(String str)
{
System.out.println("StringChecker");
}
public String getSymbol()
{
return symbol;
}
}
class CodeWordChecker extends StringChecker {
//需要完成的代码
int minLen=6;
int maxLen=20;
String symbol;
public CodeWordChecker(String symbol) {
super(symbol);
this.symbol = symbol;
}
public CodeWordChecker(int minLen, int maxLen, String symbol) {
super(symbol);
this.minLen = minLen;
this.maxLen = maxLen;
this.symbol = symbol;
}
@Override
public void isValid(String str)
{
if(str.length()<minLen||str.length()>maxLen){
System.out.println(false);
}else if(str.indexOf(this.symbol)!=-1){
System.out.println(false);
}else{
System.out.println(true);
}
}
}
三、测试数据
输入:
5
8
输出:
true
false
false
false
true
false
false
false