例题(下)
1.1
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
//提示用户输入密码(String password)
Scanner input = new Scanner(System.in);
System.out.print("输入密码:");
String str = input.nextLine();
//判断三个条件是否都成立
if (evenEightChar(str) && onlyNumberOrChar(str) && evenTwoNumber(str))
System.out.println("Valid password");
else
System.out.println("Inalid Password");
}
//至少八位
private static boolean evenEightChar(String str) {
if (str.length() >= 8)
return true;
else
return false;
}
//只有数字和字母
//isLetter(c)--判断字母
//isDigit(c)--判断数字
private static boolean onlyNumberOrChar(String str) {
char c=' ';
for (int i = 0; i < str.length(); i++) {
c=str.charAt(i);
if(!isLetter(c)&&!isDigit(c)){
return false;
}
}
return true;
}
//至少两个数字
private static boolean evenTwoNumber(String str) {
int count = 0;
char c=' ';
for (int i = 0; i < str.length(); i++) {
c=str.charAt(i);
if (isDigit(c)){
count++;
}
}
if (count < 2){
return false;
}else{
return true;
}
}
//a~z A~Z只需要比较ASCII值
//'a'<=c<='z'||'A'<=C<='Z'
//'0'<=c<='9'
public static boolean isLetter(char c){
return c>='a'&&c<='z'||c>='A'&&c<='Z';
}
public static boolean isDigit(char c){
return c>='0'&&c<='9';
//return 先计算后面的表达式,再返回
}
}
1.2
class Demo{
public static void main(String[] args){
String s="aksjuhgaikghrfkagka";
//在字符串中查找字符a出现次数
System.out.println(count(s,'a'));
}
public static int count(String s,char c){
int count=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)==c){
count++;//被查字符出现次数
}
}
return count;
}
}
1.3
import java.util.*;
class Demo{
public static void main(String[] args){
//提示用户输入
Scanner s=new Scanner(System.in);
System.out.print("输入字符串:");
String a=s.nextLine();
//函数调用
System.out.println(reverse(a));
}
public static String reverse(String a){
String res="";
for(int i=a.length()-1;i>=0;i--){
res+=a.charAt(i);
}
return res;
}
}
1.4
import java.util.*;
class Demo{
public static void main(String[] args){
//提升用户输入
Scanner s=new Scanner(System.in);
System.out.print("输入字符串:");
String a=s.nextLine();
//函数调用
System.out.println(getUpperCase(a));
}
public static int getUpperCase(String a){
int count=0;
char c=' ';
for(int i=0;i<a.length();i++){
if(isLetter(c)){//函数调用,判断字符的范围
count++;
}
}
return count;
}
public static int isLetter(char c){
//判断字符的范围
return 'A'<=c&&c<='Z';
}
}
1.5
import java.util.*;
class Demo{
public static void main(String[] args){
//提示用户输入
Scanner s=new Scanner(System.in);
System.out.print("输入第一行字符串");
String s1=s.nextLine();
System.out.print("输入第二行字符串");
String s2=s.nextLine();
//函数调用
System.out.println(getCommonPrefix(s1,s2));
}
public static String getCommonPrefix(String s1,String s2){
String minStr="";
String maxStr="";
//找出最短的字符串
if(s1.length()<=s2.length()){
minStr=s1;
maxStr=s2;
}else{
minStr=s2;
maxStr=s1;
}
//找出共同前缀
for(int i=0;i<minStr.length();i++){
if(minStr.charAt(i)!=maxStr.charAt(i)){
return minStr.substring(0,i);
}
}
return minStr;
}
}
1.6
class Demo{
public static void main(String[] args){
String s="AB8C";
//A B 8 C
//0 1 2 3
//3 2 1 0
System.out.println(hexToDeimal(s));
}
public static int hexToDeimal(String s){
int num=0;
char c=' ';
for(int i=0;i<s.length();i++){
c=s.charAt(s.length()-1-i);
/*
A=10 B=11 C=12 D=13 E=14 F=15
i=0 C C*16^0
i=1 8 8*16^1
i=2 B B*16^2
i=3 A A*16^3
*/
if(isLetter(c)){
num+=(c-'A'+10)*Math.pow(16,i);
}else{
num+=(c-'0')*Math.pow(16,i);
}
}
return num;
}
public static boolean isLetter(char c){
return c>='A'&&c<='F';
}
}