Java筑基22-布置作业啦(String练习)

目录

一、String翻转

二、注册参数校验

三、字符串格式化输出

四、统计字符串

五、内存分析


一、String翻转

/**
 * @author: 程序员飞扬
 * @description:字符串翻转
 */
public class StringReverse {

    public static void main(String[] args) {

        String s = "abcdef";
        System.out.println("交换前:" + s);
        String reverse = null;
        try {
            reverse = reverse(s, -1, 4);
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }
        System.out.println("交换后:" + reverse);

    }

    public static String reverse(String str,int start,int end){
        //编程小技巧:将正确情况列出,然后异常情况直接取反
        if(!(str !=null && start >=0 && start <= end && end < str.toCharArray().length-1)){
            throw new RuntimeException("参数不对");
        }

        char[] chars = str.toCharArray();//字符串转换成字符数组,字符数组可以交换
        char temp;
        for (int i=start,j=end; i

二、注册参数校验

Java筑基22-布置作业啦(String练习)_第1张图片

/**
 * @author: 程序员飞扬
 * @description:注册内容格式校验
 */
public class UserRegister {

    public static void main(String[] args) {
        String username="jkn";
        String password  = "123456";
        String email = "[email protected]";

        try {
            userRegister(username,password, email);
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }
        System.out.println("注册成功~");

    }

    public static void userRegister(String str,String pwd,String email){
        if(!(str != null && pwd != null && email != null)){
            throw new RuntimeException("参数不能为空");
        }

        int l = str.length();
        if(!(l>=2 && l<=4)){
            throw new RuntimeException("用户名长度有误");
        }

        if(!(pwd.length()==6 && isDigital(pwd))){
            throw new RuntimeException("密码格式有误");
        }

        int i = email.indexOf("@");//去字符的索引,如果娶不到会返回-1
        int i1 = email.indexOf(".");
        if(!(i>0 && i1 >0 && i1>i)){
            throw new RuntimeException("邮箱格式有误");
        }
    }

    public static boolean isDigital(String pwd){
        char[] chars = pwd.toCharArray();//转换成字符数组,再判断字符的ASCIIB编码,是否在'0'~'9'编码之间
        for (int i = 0; i < chars.length; i++) {
            if(chars[i]<'0' || chars[i] > '9' ){
                return false;
            }
        }
        return true;
    }
}

三、字符串格式化输出

/**
 * @author: 程序员飞扬
 * @description:将输入字符串按指定格式输出
 */
public class StringFormatOut {
    public static void main(String[] args) {
        String s = "Deng jia Xian";
        String s1 = StringFormatMethod(s);
        System.out.println(s1);
    }

    public static String StringFormatMethod(String str){

        if(str == null){
            return "";
        }

        String[] s = str.split(" ");
        if(s.length != 3){
            throw new RuntimeException("输入内容格式有误");
        }

        String format = String.format("%s,%s .%c", s[2], s[0], s[1].toUpperCase().charAt(0));
        return format;
    }
}

四、统计字符串

/**
 * @author: 程序员飞扬
 * @description:
 */
public class StringCount {

    public static void main(String[] args) {
        String s = "dnvkdnjkNFDVDNV661651&^^%^&%";
        StringCount(s);
    }

    public static void StringCount(String str){
        char[] chars = str.toCharArray();
        int countUpper=0;
        int countLower=0;
        int countNum=0;
        int countOther=0;
        for (int i = 0; i < chars.length; i++) {
            if(chars[i]>='a' && chars[i]<='z'){
                countLower++;
            }else if(chars[i]>='A' && chars[i]<='Z'){
                countUpper++;
            }else if(chars[i]>='0' && chars[i]<='9'){
                countNum++;
            }else{
                countOther++;
            }
        }
        System.out.println("小写字母:" + countUpper);
        System.out.println("大写字母:" + countLower);
        System.out.println("数字:" + countNum);
        System.out.println("其他:" + countOther);
    }
}

输出:

小写字母:7

大写字母:8

数字:6

其他:7

五、内存分析

Java筑基22-布置作业啦(String练习)_第2张图片

Java筑基22-布置作业啦(String练习)_第3张图片

你可能感兴趣的:(Java筑基系列,蓝桥杯,java,职场和发展)