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方法返回值为boolean类型,具体参考以下表格。
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,存在返回第一次出现的位置
输入样例:
在这里给出一组输入。例如:
5
8
输出样例:
在这里给出相应的输出。例如:
true
false
false
false
true
false
false
false
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 {
public int minLen;
public int maxLen;
public String symbol;
public int type;
public CodeWordChecker(String symbol)
{
super(symbol);
this.minLen = 6;
this.maxLen = 20;
}
public CodeWordChecker(int minLen,int maxLen,String symbol)
{
super(symbol);
this.minLen = minLen;
this.maxLen = maxLen;
}
public void isValid(String str) {
this.type = str.indexOf(getSymbol());
if( str.length() == this.minLen || str.length() == this.maxLen){
System.out.println("true");
}else{
System.out.println("false");
}
}
}