import java.util.*;
import java.lang.*;
class Class21{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Enter a SSN:");//提示用户输入号码
String SSN=scanner.nextLine();
CheckSSN cs=new CheckSSN(SSN);//创建一个测试号码对象
if(cs.isCheckSSN(SSN)){
System.out.println(SSN+" is a valid social security number");
}else{
System.out.println(SSN+" is an invalid social security number");
}
}
}
class CheckSSN{
private String ssn;//定义一个字符串成员变量表示号码
CheckSSN(String ssn){//定义构造方法 传入一个字符串
this.ssn=ssn;
}
public boolean isCheckSSN(String ssn){//定义方法测试号码格式是否正确
return islength(ssn)&&isformat(ssn);
}
public boolean islength(String ssn){//定义方法测试号码长度是否正确
return ssn.length()==11;
}
public boolean isformat(String ssn){//定义方法测试号码所包含的内容是否正确
String s1=ssn.substring(0,3);
String s2=ssn.substring(4,6);
String s3=ssn.substring(7,11);
if(ssn.charAt(3)!='-'&&ssn.charAt(6)!='-'){
return false;
}
if(!isnumber(s1)&&!isnumber(s2)&&!isnumber(s3)){
return false;
}
return true;
}
public boolean isnumber(String ssn){//定义方法看传入的字符串是否是数字
for(int i=0;i<ssn.length();i++){
if(!Character.isDigit(ssn.charAt(i))){
return false;
}
}
return true;
}
}
import java.util.*;
class Class24{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the first string:");//提示用户输入第一个字符串
String s1=scanner.nextLine();
System.out.print("Enter the second string:");//提示用户输入第二个字符串
String s2=scanner.nextLine();
CommonPrefix cp=new CommonPrefix(s1,s2);//创建共同前缀对象 并传入两个字符串
System.out.println(cp.Getcommonprefix(s1,s2));//该对象调用获取最长共同前缀方法
}
}
class CommonPrefix{
private String s1;//定义一个成员变量表第一个字符串
private String s2;//定义一个成员变量表第二个字符串
public CommonPrefix(String s1,String s2){//定义构造方法 传入两个字符串
this.s1=s1;
this.s2=s2;
}
public String Getcommonprefix(String s1,String s2){//定义方法 获取两个字符串的最长共同前缀
String prefix="";
for(int i=0;i<Math.min(s1.length(),s2.length());i++){
if(s1.charAt(i)==s2.charAt(i)){
prefix+=s1.charAt(i);
}else{
break;
}
}
return prefix;
}
}
import java.util.*;
class Class27{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入密码:");//提示用户输入密码
String s=scanner.nextLine();
CheckPassword cp=new CheckPassword(s);//创建一个 检测密码对象并传入密码
System.out.println(cp.isCheck(s));//该对象调用检测密码方法
}
}
class CheckPassword{
private String password;//定义一个字符串成员变量表密码
public CheckPassword(String password){//定义构造函数 并传入一个字符串
this.password=password;
}
public boolean isCheck(String password){//定义方法检测字符串是否是有效密码
return isLength()&&isAlpha()&&isNumber();
}
private boolean isLength(){//定义方法检测密码长度是否正确
return password.length()>=8;
}
private boolean isAlpha(){//定义方法检测密码是否由数字和字母构成
for(int i=0;i<password.length();i++){
char c=password.charAt(i);
if(!(Character.isDigit(c)||Character.isLetter(c))){
return false;
}
}
return true;
}
private boolean isNumber(){//定义方法检测密码是否至少包含两个数字
int count=0;
for(int i=0;i<password.length();i++){
char c=password.charAt(i);
if(Character.isDigit(c)){
count++;
}
}
return count>=2;
}
}
import java.util.*;
class Class34{
public static void main(String[] args){
String[] words={"curry","jeams","irving","harden","drant"};//创建单词表
WordGame wg=new WordGame(words);//创建 单词游戏对象 传入单词表
wg.StartGame();//该对象调用游戏开始 方法
}
}
class WordGame{
private String[] words;//定义成员变量表示用户传入的单词表
private String word;//定义成员变量表示当前正在猜测的单词
private Random random;
private int misscount;//定义成员变量表示猜错的次数
private boolean[] states;//定义成员变量表示当前单词的密文状态
public WordGame(String[] words){//定义构造方法 传入单词表
this.words=words;
this.random=new Random();
}
public void StartGame(){//定义方法 游戏开始及游戏流程
Scanner scanner=new Scanner(System.in);
while(true){
//随机产生一个单词
word=words[random.nextInt(words.length)];
//创建该单词的密文状态表
states=new boolean[word.length()];
//根据密文状态 生成提示单词
while(!isGameover()){
String str=getWord();
System.out.println("Enter a letter in word ");
String ch=scanner.nextLine();
if(word.contains(ch)){
//改变密文状态
changeStates(ch);
}else{
System.out.print(ch+" is not in the word");
misscount++;
}
}
System.out.println("The word is "+word+".you missd "+misscount+" time");
System.out.print("Do you want to guess another word?Enter y or n:");
String choice=scanner.nextLine();
if(choice.equals("y")){
misscount=0;
continue;
}else{
break;
}
}
}
private boolean isGameover(){//定义方法表示游戏结束
for(int i=0;i<states.length;i++){
if(states[i]==false){
return false;
}
}
return true;
}
private String getWord(){//定义方法 生成单词或*
String s="";
for(int i=0;i<states.length;i++){
if(states[i]){
s+=word.charAt(i);
}else{
s+="*";
}
}
return s;
}
private void changeStates(String ch){//定义方法改变密文状态
for(int i=0;i<states.length;i++){
if(ch.equals(word.charAt(i)+"")){
if(states[i]==true){
System.out.print(ch+"is alread in the word");
return;
}else{
states[i]=true;
}
}
}
}
}