package 编程练习题chapter9;
import java.util.Scanner;
public class Exercise9_1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a string for SSN: ");
String s = input.nextLine();
if (isValidSSN(s)) {
System.out.println("Valid SSN");
}
else {
System.out.println("Invalid SSN");
}
}
public static boolean isValidSSN(String ssn) {
return ssn.length() == 11 &&
Character.isDigit(ssn.charAt(0)) &&
Character.isDigit(ssn.charAt(1)) &&
Character.isDigit(ssn.charAt(2)) &&
ssn.charAt(3) == '-' &&
Character.isDigit(ssn.charAt(4)) &&
Character.isDigit(ssn.charAt(5)) &&
ssn.charAt(6) == '-' &&
Character.isDigit(ssn.charAt(7)) &&
Character.isDigit(ssn.charAt(8)) &&
Character.isDigit(ssn.charAt(9)) &&
Character.isDigit(ssn.charAt(10));
}
}
package 编程练习题chapter9;
import java.util.Scanner;
public class Exercise9_2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the first string: ");
String first = input.nextLine();
System.out.print("Enter the second string: ");
String second = input.nextLine();
if (isSubstring(first, second)) {
System.out.println(first + " is a substring of " + second);
} else {
System.out.println(first + " is not a substring of " + second);
}
}
public static boolean isSubstring(String first, String second) {
int remainingLength = second.length();
int startingIndex = 0;
toWhile: while (first.length() <= remainingLength) {
for (int i = 0; i < first.length(); i++) {
if (first.charAt(i) != second.charAt(startingIndex + i)) {
startingIndex++;
remainingLength--;
continue toWhile;
}
}
return true;
}
return false;
}
}
package 编程练习题chapter9;
import java.util.Scanner;
public class Exercise9_3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a string for password: ");
String s = input.nextLine();
if (isValidPassword(s)) {
System.out.println("Valid password");
} else {
System.out.println("Invalid passsword");
}
}
public static boolean isValidPassword(String s) {
for (int i = 0; i < s.length(); i++) {
if (!Character.isLetter(s.charAt(i))
&& !Character.isDigit(s.charAt(i)))
return false;
}
if (s.length() < 8)
return false;
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (Character.isDigit(s.charAt(i)))
count++;
}
if (count >= 2)
return true;
else
return false;
}
}
package 编程练习题chapter9;
import java.util.Scanner;
public class Exercise9_11 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a string: ");
String s = input.nextLine();
System.out.println("Sorted string is " + sort(s));
}
public static String sort(String s) {
StringBuilder buffer = new StringBuilder(s);
char currentMax;
int currentMaxIndex;
for (int i = buffer.length() - 1; i >= 1; i--) {
currentMax = buffer.charAt(i);
currentMaxIndex = i;
for (int j = 1; j <= i; j++) {
if (currentMax < buffer.charAt(j)) {
currentMax = buffer.charAt(j);
currentMaxIndex = j;
}
}
if (currentMaxIndex != i) {
buffer.setCharAt(currentMaxIndex, buffer.charAt(i));
buffer.setCharAt(i, currentMax);
}
}
return buffer.toString();
}
}