Java总结 第三篇 常用工具类

一,Arrays类是jdk提供的专门用于操作数组的工具类,位于java.util包中。
1 Arrays类
Arrays toString
返回指定数组内容的字符串表示形式。
Arrays copyOf
复制指定的数组,截取或用 null 填充(如有必要),以使副本具有指定的长度。
Arrays sort()
对指定的类 型数组按数字升序进行排序。
Arrays binarySearch ()
使用二分搜索法来搜索制定类型数组,以获得指定的值 //必须有序
Arrays fill()
将指定的类型值分配给指定 类 型数组指定范围中的每个元素

Arrays equals()
如果两个指定的 类型数组彼此相等,则返回 true。
程序清单:

     int[]arr1={10,50,40,30};
            int[] arr2={10,50,40,30};
            int[] arr3={60,50,85};
            int[] arr4={10,50,40};
           System. out.println(Arrays. equals(arr1, arr2));
           System. out.println(Arrays. equals(arr1, arr3));
           System. out.println(Arrays. equals(arr1, arr4));

           Arrays. sort(arr1);
            for( int elem: arr1){ //elem是变量;来自如数组 arr[];
                System. out.print( " "+ elem);
           }
           Arrays. fill(arr1, 40);
           System. out.println(Arrays. toString(arr1));

输出

true
false
false
 10 30 40 50[40, 40, 40, 40]

程序清单:

int[]arr1 ={10,50,40,30};
           Arrays. sort(arr1);
            int index=Arrays. binarySearch(arr1, 30);
           System. out.println( index);
            index= Arrays.binarySearch (arr1 , 50);
           System. out.println( index);
            int[] arr2=Arrays. copyOf(arr1, 3);
           System. out.print(Arrays. toString(arr2));
 输出
1
3
[10, 30, 40]

二,String类
String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。
1,equals //考虑大小写
将此字符串与指定的对象比较。

S

tring name="Liu";//定义同时初始化
     //equals方法,进行内容比对。
            boolean re= name.equals( "liu");
            boolean ret= name.equals( "Liu");
           System. out.println( re);
           System. out.println( ret);

输出:

false
true

2 登陆时不考虑大小写的方法。

1)equalslgnoreCase()方法
将此 String 与另一个 String 比较,不考虑大小写

boolean re =name .equalsIgnoreCase("liu" );
            boolean ret= name.equalsIgnoreCase( "Liu");
           System. out.println( re);
           System. out.println(ret);

输出:

true
true

2)toLowCase()方法
使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。

String name="Liu";//定义同时初始化
            boolean re= name.toLowerCase().equals( "liu");
            boolean ret= name.equals( "Liu");
           System. out.println( re);
           System. out.println( ret);

输出:

true
true

3)toUpperCase()方法

String name="Liu";//定义同时初始化
            boolean re= name.toUpperCase().equals( "LIU");
            boolean ret= name.equals( "Liu");
           System. out.println( re);
           System. out.println( ret);

输出:

true
true

使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
3、字符串常用提取办法
indexOf
返回指定字符在此字符串中第一次出现处的索引。
lastIndex
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索
subString
返回一个新的字符串,它是此字符串的一个子字符串。
charAt()
返回指定索引处的 char 值。
trim()
返回字符串的副本,忽略前导空白和尾部空白。
replace()
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
split()
根据给定正则表达式的匹配拆分此字符串
valueOf()
返回 指定 参数的字符串表示形式。

            double price=89.5;
//         String str=String.valueOf(price);
           String str1= " "+ price;
            System.out.println( str1);

输出:

89.5
 89.5

举例1

String content=" adimin ";
            int len= content.trim().length();
           System. out.println(len);
           String input= "hello,world";
           String t=input .replace("h" ,"H" );
           System. out.println( t);

输出:

6
Hello,world

举例2

String str="hello,hello,world";
            int len= str.length();
            System.out.println( len);
            int idx= str.indexOf( "lo"); //起始位置。
            System.out.println( idx);
           String subStr= str.substring(2); //包含起始,知道结束。
            System.out.println( subStr);
            subStr= str.substring(2, 5); //包含起始但是不包括结束。
            System.out.println( subStr);
            char c= str.charAt(2); //提取字符
            System.out.println( c);
            idx= str.lastIndexOf( "lo");
            System.out.println( idx);

输出结果:

17
3
llo,hello,world
llo
l
9

举例3

Scanner input=new Scanner(System. in);
           System. out.println( "请输入产品编号" );
           String number1= input.next();
           System. out.println( "请输入产品名称" );
           String title1=input.next();



           String count= number1+ ' '+ title1;
           String[] items= count.split( " ");
            for(String item: items){
                System. out.print( item+ "\t");
           }

输出结果:

请输入产品编号
宁
请输入产品名称
四
宁   四   

ps:

字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享
三,StringBuffer 字符串缓冲区 增强字符串的使用效率

StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。

1,如何提高?

String str1="hello";
           String str2= "world";
           String str3= str1+ ","+ str2; //产生5个字符串常量
                                       方法

1,append()
将 指定 参数的字符串表示形式追加到序列。
2,toString()
返回此序列中数据的字符串表示形式。
3、reverse()
将此字符序列用其反转形式取代。
4、insert()
将 指定 参数的字符串表示形式插入此序列中。
举例1:

   StringBuffer sb=new StringBuffer( "hello");
            sb.append( ",");
            sb. append("world");
           String strDate= sb.toString();
           System. out.println( strDate);

输出:

     hello,world

举例2:

StringBuffer sb=new StringBuffer();
sb.append( "123456789865");
for( int i= sb.length()-3; i>0; i= i-3){
    sb.insert( i, ",");
 }
           System. out.println( sb.toString());

输出:

123,456,789,865

举例3:

StringBuffer sb=new StringBuffer();
sb.append( "123456789865");
sb.reverse();
System. out.println( sb.toString());

输出结果:

568987654321

时间和日期处理

JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃
Date
Date date=new Date(); //获得当前日期
Calender

可以通过调用 set 方法来设置日历字段值。在需要计算时间值(距历元所经过的毫秒)或日历字段值之前,不会解释 Calendar 中的所有字段值设置。调用 get、getTimeInMillis、getTime、add 和 roll 涉及此类计算。

1, getIntance
使用默认时区和语言环境获得一个日历。
Calendar calendar=Calender.getInstance();
2, setTime
使用给定的 Date 设置此 Calendar 的时间。
举例:

           Date now= new Date();                                                       //当前日期
//          int year=now.getYear();
           Calendar c=Calendar. getInstance();                         
                                    //产生一个calendar,用于对日期进行处理的工具类
        c.setTime( now);                                                                          //设置日期数据
        int year= c.get(Calendar. YEAR);                                          //获得日期的组成部分
        int month= c.get(Calendar. MONTH);
        int day= c.get(Calendar. DAY_OF_MONTH);
        int hour= c.get(Calendar. HOUR);
        int minute= c.get(Calendar. MINUTE);
        int second= c.get(Calendar. SECOND);
       String dateFormat= year+ "年"+ month+ "月"+ day+ "日"+ hour+ "时"+ minute+ "分"+ second+ "秒";
       System. out.println( dateFormat);

输出:

2015年10月5日5时34分19秒

日期类型与字符串转换 SimpleDateFormat java.text
字符转日期
日期转字符
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来创建日期-时间格式器。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器。可以根据需要使用 applyPattern 方法来修改格式模式。有关使用这些方法的更多信息

构造方法
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);

                                                                  方法

1,parse
解析字符串的文本,生成 Date。

举例1:

Scanner input=new Scanner(System.in);
           System. out.println( "请输入您的生日:(yyyy年mm月dd日)" );
           String birth= input.next();
           SimpleDateFormat sdf= new SimpleDateFormat( "yyyy年MM月dd日");//mm 表示分;MM表示month
           Date date= sdf.parse( birth);
           Calendar c=Calendar. getInstance();
            c.setTime( date);
            int month= c.get(Calendar. MONTH)+1;
            int day= c.get(Calendar. DAY_OF_MONTH);
           Date now= new Date();
           Calendar s=Calendar. getInstance();
            s.setTime( now);
            int month1= s.get(Calendar. MONTH)+1;
            int day1= s.get(Calendar. DAY_OF_MONTH);
            if( month== month1&& day== day1){
                System. out.println( "生日快乐");
           } else{
                System. out.println( "hello");
           }

输出结果:
请输入您的生日:(yyyy年mm月dd日)
2011年11月06日
生日快乐

2 ,format
将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。
举例2:

 SimpleDateFormat sdf= new SimpleDateFormat( "yyyy年MM月dd日 HH:mm:ss");    
           String frmDate= sdf.format( new Date());
           System. out.println( frmDate);

输出结果:

        2015年11月06日 10:52:23

包装类(包含对数据处理的方法)
超类是Object

你可能感兴趣的:(java)