JAVA-函数(例题下)

例题(下)

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';
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值