JAVA常用实用类

JAVA常用实用类

String类

  • 构造与引用
/构造/
String s = new String("Java");
String tom = new String(cat);
char a[]={......}
String s = new String(a);
/引用/
s1="你好";s2="你好"
  • 判断两个字符串相同不能用==
String you="你";String  good="好"
you+good!=s1或s2

+ 常用方法

 num = str.length();//长度 int
if(s1.equals(s2)){}//判断相同
s.startsWith("upc");//判断前缀是否相同 boolean
str.compareTo("aba");//字典序  int
srr.comtains("upc");//是否包含  boolean
indexOf("")// 首次出现str, 最后出现str
substring(int startpoint,int endpoint)//String 子串 
Arrays.sort(a);//字符串数组字典序排序
  • 上机作业
 public static void main(String []args){
        String mess="姓名:张三 出生时间:1989.10.16.个人网站:http://www.zhang.com 身高:185cm,体重:72kg";
        int index= mess.indexOf(":"); //返回字符串中首次出现冒号的位置
        String name=mess.substring(index+1);
        if(name.startsWith("张")) System.out.println("简历中的姓名姓张");
        index= mess.indexOf(":",index+1); //返回字符串中第2次出现冒号的位置
        String date=mess.substring(index+1,index+11);
        System.out.println(date);
        index=mess.indexOf(":",index+1);
        int heightPosition= mess.indexOf("身",index+1);//返回字符串中首次出现身高的位置
        String personNet=mess.substring(index+1,heightPosition-1);
        System.out.println(personNet);
        index=mess.indexOf(":",heightPosition);//返回字符串中身高后面的冒号位置
        int cmposition=mess.indexOf("cm");
        String height=mess.substring(index+1,cmposition);
        height=height.trim();
        int h=Integer.parseInt(height);
        if(h>=180){
            System.out.println("简历中的身高"+height+"大于或等于180cm");
        }
        else {
            System.out.println("简历中的身高"+height+"小于180cm");
        }
        index=mess.lastIndexOf(":");//返回字符串中最后一个冒号的位置
        int kgPosition=mess.indexOf("kg");//转化为整形
        String weight=mess.substring(index+1,kgPosition);
        weight=weight.trim();
        int w=Integer.parseInt(weight);
        if(w>=75){
            System.out.println("简历中的体重"+weight+"大于或等于75kg");
        }
        else{
            System.out.println("简历中的体重"+weight+"小于75kg");
        }
    }

正则表达式

String 中具有特殊意义的字符序列.

元字符有:

元字符 写法 意义
. . 任意字符
\d \\d 0-9数字
\D \\D 非数字
\s \\s 空格类
\p \\p 小写字母
\p \\p 数字
\p \p 字母
  • 或者可以

    • [abc]: 代表a,b,c中任意一个

    • [ ^ abc] :abc都没有

    • [a-d] a-d任意一个

    • [a-zA-Z]代表英文字母

+ 限定符

+ X? 出现0次或多次
+ X* 出现0次或多次
+ X{n} 出现n次
+ X+ 出现1次或多次

字符串替换 replaceAll(“”)

字符串分解 split(“”)

+ 上机作业菜单:

public static void main(String[] args){
        String str,s="北京烤鸭:189元,西芹炒肉:12.9元,酸菜鱼:69元,铁板牛柳:32元";
        str = s.replaceAll("[^0-9元.]","");
        String[] arr=str.split("元");
        double tem=0;
        s=s.replaceAll(",","\n");
        for (int i = 0; i < arr.length; i++) {
            tem+=Double.parseDouble(arr[i]);
        }
        System.out.println("\n---------------总菜单如下----------------\n\n"+s);
        System.out.println("\n--------------------------------------\n\n");
        System.out.println("总价格="+tem+"元");
    }

或:

String[] arr=str.split("\\D+");
System.out.println(arr.length); //会输出4

StringTokenizer类

 StringTokenizer stringTokenizer = new StringTokenizer(str,"元");
        while (stringTokenizer.hasMoreTokens()){
            System.out.println(stringTokenizer.nextToken());
        }
  • 区别

String.Split()使用正则表达式,而StringTokenizer的只是使用逐字分裂的字符。
如果不用正则表达式(StringTokenizer也不能使用正则表达式),StringTokenizer在截取字符串中的效率最高。

Scanner 类

  • 区别

    Scanner 以时间换空间 StringTokenizer以时间换空间

Date类与Calendat类

Date date = new Date();
        long dt=315532800;//十年前 单位是ms 1000ms=1s 
        date.setTime(System.currentTimeMillis()-dt*1000);
/*formate方法*/
/* %ty 年 %tm 月 %td 日 */
/* %tY 4位年 */
        System.out.println(String.format("%tY-%<tm-%<td",date));
        System.out.println(String.format("%tm/%<td %<tY",date));
        System.out.print(String.format(Locale.CHINA,"%tY年%<tm月%<td日 %<ta",date));

时间随机

public static void main(String args[]){
            int[] list = new int[]{30,40,50,60,70,80,90};
            System.out.println(list[(int)(System.currentTimeMillis()%6)]);
        }

数字格式化

相当于printf()

String s =Stirng.format("%.2f",3.14159);//%d %o %x %X
posted @ 2019-01-03 22:56  house_cat  阅读(1170)  评论(0)    收藏  举报