博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习的总结
阅读量:1819 次
发布时间:2019-04-25

本文共 14292 字,大约阅读时间需要 47 分钟。

常用的数学函数

String类

public class StringDemo {    public static void main(String[] args) {        String value = "456";        value += "123"; //相当于调用了 value.concat()方法,会直接返回一个新的字符串空间        String value2 = "456123";//将字符串中的地址赋值给value2        System.out.println(value == value2);    }}

== 如果地址不同的话就输出flase

判断字符串相等的时候用 字符串1.equals(字符串2)判断相等

Character.isLetter(ch)//判断是否为数字Character.isLetterOrDigit(ch)// 判断是否为字母或数字Character.isJavaIdentifierPart(ch)//判断用来定义java变量的单词中,除首字符外,其他字符是否是合法字符Character.isJavaIdentifierStart(ch)//判断java变量中,第一个字符是否是合法字符Character.isUpperCase(ch)//判断是否是大写字母
public class StringDemo {    public static void main(String[] args) {        //演示常用的几种String对象的创建方式        String str1 = "你好,世界!";        String str2 = new String();//使用默认构造        String str3 = new String(str1);​        char[] chArray = {'a','b','c'};        //将字符数组转换为String对象        String str4 = new String(chArray);        //将字符串转换为字符数组        chArray = str4.toCharArray();        //字节数组与字符串转换        byte[] byteArray = {104,101,108,108,111};        String str5 = new String(byteArray);        System.out.println(str5);    }}

 

public class StringDemo {    public static void main(String[] args) {        //trim方法:去掉字符串左右两侧的空格        //建议:在用户输入用户名后使用        Scanner input = new Scanner(System.in);        System.out.println("请输入用户名:");        String uName = input.nextLine().trim();        System.out.println("---" + uName + "---" );            }}

public class StringDemo {    public static void main(String[] args) {    //indexOf方法        String password = "ab3456abc";        System.out.println(password.indexOf("ab",2));    }}

2指的是从字符串中下标2以后开始查

判断字符串中的数

public class StringDemo {    public static void main(String[] args) {        //问题:判断字符串中只能有一个小数点,小数点不能在第一位,也不能在最后一位!        StringDemo stringDemo = new StringDemo();        stringDemo.isDecimal("0");    }    //判断传入的字符串是否是一个正确格式的小数    //小数点不能在第一位,也不能在最后一位!    public static boolean isDecimal(String str){        boolean isDecimal = true;        for (int i = 0; i < str.length(); i++) {            if (!(Character.isDefined(str.charAt(i)))){                if(str.charAt(i) == '.'){                    if(i == 0 || i == str.length() - 1){//如果小数点在第一位或最后一位,仍然是非法的,返回flase                        isDecimal = false;                        break;                    }                }else {//如果当前数字不是数字并且也不是小数点,那么证明是非法字符,直接返回false                    isDecimal = false;                    break;                }            }        }        //判断字符串中只有一个小数点        if(!(str.contains(".") && str.indexOf(".")  == str.lastIndexOf("."))){            return false;        }        return isDecimal;    }}

substring

public class StringDemo {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        String password = "abc123456";​​        //[beginIndex,endIndex)左闭右开        System.out.println(password.substring(1,3));        //从下标3开始一直到最后        System.out.println(password.substring(3));    }​}

制作一个日历表输入年份月份显示

public class Demo09 {    //用户输入的年份    public static int year = Integer.MIN_VALUE;    //用户输入的月份    public static int month = Integer.MIN_VALUE;    //对应每个月份的天数    private static int[]   dayOfMoth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};​    public static void main(String[] args) {        PirntCalendar();    }​    public static void PirntCalendar() {        //1.让用户输入年份和月份        InputYearAndMomth();        //2.1900-1-1到用户输入年份的总天数        //2.1.计算各年的总天数        //2.2.计算各月的总天数之和        int sum = getSunDayOfYears();        sum += getSumDayOfMoth();        sum++;        //3.打印年份和月份(英语)        printMothTitle();        //4.打印月份的标题(星期一到星期日)        //5.根据某月1日是星期几,打印月历内容        PrintCalendarContent(sum % 7 );    }​    /**     *打印月历的内容     * @param dayOfweek 当前月一号是星期几     */    private static void PrintCalendarContent(int dayOfweek){        int sepCount = 0;// \t的数量        if(dayOfweek == 0){            sepCount = 6;        }else {            sepCount = dayOfweek - 1;        }        for (int i = 0; i < sepCount; i++) {            System.out.print("\t\t");        }        for (int i = 0; i < dayOfMoth[month-1]; i++) {            System.out.print(i + 1);            if((dayOfweek + i) % 7 == 0){                //周日                System.out.println();            }else{                System.out.print("\t\t");            }        }    }​    private static void printMothTitle(){        String[] monthNames = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};        System.out.println("\t" + "\t" +year + "\t" + monthNames[month-1]);        String[] weekdays = {"月曜日","火曜日","水耀日","木曜日","金曜日","土曜日","日耀日"};        for (int i = 0; i < weekdays.length; i++) {            System.out.print(weekdays[i] + "\t");        }        System.out.println();    }​    /**     *获得1900到year的总天数     * @return     */    public static int getSunDayOfYears(){        if(year == Integer.MIN_VALUE){            System.out.println("年份错误,请重新输入年份和月份");            InputYearAndMomth();        }        int sum = 0;        for (int i = 0; i < year-1900; i++) {            sum +=365;            if(isLeaYear(i)){                sum++;            }        }        return sum;    }​    /**     * 得到year年一月一号到year年month-1月最后一天的总天数     * @return     */    private static int getSumDayOfMoth(){        int sum = 0;        for (int i = 0; i < month - 1; i++) {            sum +=dayOfMoth[i];        }        if(isLeaYear(year) && month >= 3){            sum++;        }        return sum;    }​    /**     * 用来判断传入的year是不是闰年     * @param year  要判断的年份     * @return      是闰年返回true     */    private static boolean isLeaYear(int year){        return year % 400 == 0 ||year % 4 == 0 && year%100 !=0;    }​    /**     * 接收用户输入的年份和月份     */    private static void InputYearAndMomth(){        Scanner input = new Scanner(System.in);        System.out.print("请输入年份:");        year = input.nextInt();        System.out.print("请输入月份:");        month = input.nextInt();        input.close();        input = null;    }}

密码验证

package com.zhang.uererdemo;import java.util.Scanner;public class UserMain {    public static void main(String[] args) {        //实现用户注册        Scanner input = new Scanner(System.in);//        System.out.print("请输入用户名:");//        String userName = input.next();        System.out.print("请输入密码:");        String password = input.next();        System.out.println(StringUtil.validatePassWore(password));//    }}public class User {    private String userName;    private String password;    private String email;    public User() {        super();    }    public User(String userName , String password , String email){        setUserName(userName);        setPassword(password);        setEmail(email);    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }}//字符串工具类public class StringUtil {    public static boolean isCorrectUserName(String userName){        boolean isCorrect  = true;        //判断用户输入的用户名是否是合法的用户名        if(userName == null) return false;        if(userName.length() > 25 )return false;        char[] unValidChar = {' ', '\'' , '"' , '?' ,'<' , '>' , ','};        for (char ch : unValidChar){            if(userName.contains(Character.toString(ch))){                isCorrect = false;                break;            }        }        return isCorrect;    }    public static String validatePassWore(String passWord){        String power = "";//密码强度,如果返回值为"",那么密码验证失败,验证成功则返回星号表示密码强度        if(passWord == null) return power;        if(passWord.length() < 6 || passWord.length() >18) return power;        //String[] correctPart = {"_" , "@" , "#" , "$" , "!" };//合法的组成部分        String part = "_@#$!";        for (int i = 0; i < passWord.length(); i++) {            if(!Character.isLetterOrDigit(passWord.charAt(i))){                //如果不是字母或数字,并且也不是合法的特殊符号,就证明是非法格式                if(!part.contains(Character.toString(passWord.charAt(i)))){                    return power;                }            }        }        //判断密码强度        if(isDigit(passWord) || isLetter(passWord)){            power = "◆◆◇◇◇◇";        }else if(isDigitAndLetter(passWord)){            power = "◆◆◆◆◇◇";        }else if(isContainsSymble(passWord)){            power = "◆◆◆◆◆◆";        }        return power;    }//    private static boolean isDigitAndLetterAndSymble(String value){//        //是否包含数字字母特殊符号//        for (int i = 0; i < value.length(); i++) {//            if(!(Character.isDigit(value.charAt(i)) ||//                    Character.isLetter(value.charAt(i)) ||//                    "_@#$!".contains(Character.toString(value.charAt(i))))){//            return false;//            }////        }//        return true;//    }    //字符串中包含和合法的字母和数字    private static boolean isDigitAndLetter(String value){        for (int i = 0; i < value.length(); i++) {            if(!Character.isLetterOrDigit(value.charAt(i)) ){                return false;            }                    }        return true;    }    //判断一个数字是不是纯数字    private static boolean isDigit(String value){        for (int i = 0; i < value.length(); i++) {            if(!Character.isDigit(value.charAt(i))){                return false;            }        }        return true;    }    private static boolean isLetter(String value){        for (int i = 0; i < value.length(); i++) {            if(!Character.isLetter(value.charAt(i))){                return false;            }        }        return true;    }    //判断字符串中是否包含特殊符号    private static boolean isContainsSymble(String value){        String part = "_@#$!";        for (int i = 0; i < value.length(); i++) {            if(!part.contains(Character.toString(value.charAt(i)))){                return true;            }                    }        return false;    }}

StringBuffer /StringBuilder

带缓存的字符串

public class StringBuff {    public static void main(String[] args) {        //加强版字符串        String str1 = "a";        String str2 = "b";        String str3 = str1 + str2;        //底层实现        String str4 = new StringBuffer(String.valueOf(str1)).append(str2).toString();    }}

与String类不同的是,StringBuffer和StringBuilder类的对象能够被多次修改,并且不产生新的未使用的对象。

public class StringBuff {    public static void main(String[] args) {        final int N = 500_000;//十万        long starTime = System.currentTimeMillis();        String str = "*";        for (int i = 0; i < N; i++) {                str += "*";        }        long endTime = System.currentTimeMillis();        System.out.println("+=用时:"  +   (endTime - starTime) + "毫秒");        //使用StringBuff进行拼接        starTime = System.currentTimeMillis();        StringBuffer str1 = new StringBuffer("*");        for (int i = 0; i < N; i++) {            str1.append("*");        }        endTime = System.currentTimeMillis();        System.out.println("StringBuff的append用时:" + (endTime - starTime) + "毫秒");        //StringBuilder        starTime = System.currentTimeMillis();        StringBuilder str2 = new StringBuilder("*");        for (int i = 0; i < N; i++) {            str2.append("*");        }        endTime = System.currentTimeMillis();        System.out.println("StringBuilder的append用时:" + (endTime - starTime) + "毫秒");    }}

public class StringBuff {    public static void main(String[] args) {        StringBuffer stringBuffer = new StringBuffer("你好,世界");        StringBuffer stringBuffer1 = new StringBuffer("你好,世界");        StringBuffer stringBuffer2 = new StringBuffer("你好,世界");        StringBuffer stringBuffer3 = new StringBuffer("你好,世界");        System.out.println(stringBuffer.reverse());//反转字符串        //插入   在规定下标处插入元素        stringBuffer1.insert(3,"abc");        System.out.println(stringBuffer1);        stringBuffer2.deleteCharAt(3);        System.out.println(stringBuffer2);        stringBuffer3.delete(2,4);          //范围    [2,4)   之间的元素        System.out.println(stringBuffer3);        stringBuffer1.replace(2,4,"北京");        System.out.println(stringBuffer1);        System.out.println("缓存大小:" + stringBuffer.capacity());        stringBuffer.setLength(0);//相当于清空了字符串对象        //        stringBuffer.trimToSize();    }}

 

商品管理

public class ProdectBiz {    public static void main(String[] args) {        //用来保存每种商品的总量        int[] counts = new int[3];        double total = 0; //最终要支付的总金额        Preduct[] preducts = new Preduct[3];        for (int i = 0; i < counts.length; i++) {            preducts[i] = new Preduct();            String name = JOptionPane.showInputDialog("请输入商品名称:");            preducts[i] .setName(name);            //接收用户输入的商品单价,要注意:返回值是字符串类型!            String strPrice = JOptionPane.showInputDialog("请输入商品的单价:");            //需要将字符串类型转换为double类型,在进行赋值            preducts[i] .setPrice(Double.parseDouble(strPrice));            String strCount = JOptionPane.showInputDialog("请输入购买的数量");            counts[i] = Integer.parseInt(strCount);            //累加总金额            total += preducts[i] .getPrice() * counts[i];        }        System.out.println("购物结算:");        for (int i = 0; i < preducts.length; i++) {            System.out.println(preducts[i].getName() + "\t" + preducts[i].getPrice());        }        System.out.println("商品的总金额" + total);    }}public class Preduct {    private String name;    private double price;    //商品的描述    private String description;    //商品的服务    private String[] services;    public Preduct(){    }    public Preduct(String name , String description){        setName(name);        setDescription(description);    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public double getPrice() {        return price;    }    public void setPrice(double price) {        this.price = price;    }    public String getDescription() {        return description;    }    public void setDescription(String description) {        this.description = description;    }    public String[] getServices() {        return services;    }    public void setServices(String[] services) {        this.services = services;    }}

转载地址:http://dgukf.baihongyu.com/

你可能感兴趣的文章
Vue入门笔记(二)——路由
查看>>
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers!
查看>>
Robolectric常用方法
查看>>
Robolectric之Shadows
查看>>
h5页面图片未加载出来问题排查
查看>>
互联网常用架构学习
查看>>
腾讯T3大牛手把手教你!2021Android精选面试实战总结整理,移动架构师成长路线
查看>>
腾讯T3面试官透露!十年开发经验Android架构师,成功拿下大厂offer
查看>>
程序员去大公司面试,Android性能优化之启动优化实战篇,再不刷题就晚了!
查看>>
程序员如何技术划水,2021Android最新大厂面试真题总结,架构师必备技能
查看>>
程序员如何技术划水,程序员工作2年月薪12K,吐血整理
查看>>
程序员如何解决中年危机?全网最具深度的三次握手、四次挥手讲解,附面试题答案
查看>>
程序员如何解决中年危机?难道Android真的凉了?再不刷题就晚了!
查看>>
程序员开发指南!全世界都在问Android开发凉了吗?大厂面试题汇总
查看>>
程序员深度学习!字节跳动Android面试全套真题解析在互联网火了,已拿offer
查看>>
程序员深度学习!读完我这份《Android开发核心源码精编解析》面试至少多要3K!面试真题解析
查看>>
程序员进阶知识点!系统盘点Android开发者必须掌握的知识点,Android面试题及解析
查看>>
看完我工资从12K变成了20K!Android开发者出路在哪?建议收藏
查看>>
看完直接怼产品经理!Android彻底组件化方案实践方法!送大厂面经一份!
查看>>
看完直接怼项目经理!只需一篇文章吃透Android多线程技术,成功定级腾讯T3-2
查看>>