码迷,mamicode.com
首页 > 移动开发 > 详细

Android_Log_3_Java基础API

时间:2015-05-11 20:12:20      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:java   正则表达式   字符串   日期   精确运算   

1.字符串相关

String

   使用String str1 = “abc”;的创建方式。第一次用到一个字符串字面值时,会在字符串常量池中创建字符串实例。再次使用相同的字面值时,会优先从字符串常量池获取已经存在的字符串实例。

String str2 = “abc”str1str2获取的是同一个实例,所以str1==str2true.

字符串连接一次必定会创建一个新的String变量,效率低。

 

常用方法:

1.  charAt(int index)

2.  toUpperCase()/toLowerCase()

3.  length()

4.  compareTo(String anotherString)

5.  compareToIgnoreCase(String str): 按字符编码表顺序比较

6.  startsWith(String str): str开头,返回boolean

7.  endsWith():

8.  equals(Object obj):

9.  equalsIgnoreCase(String str):

10.indexOf(String s):

11.lastIndexOf(String s):

12.indexOf(String s, int fromIndex): 从指定位置开始向后找

13.replace(char oldChar, char newChar);

14.substring(int beginIndex): 从指定下标开始截取后面字符串(包含)

15.substring(int beginIndex, int endIndex): 截取指定范围字符串

16.trim():去除两端空白字符。

17.getBytes(): 将字符串转为默认编码的byte数组并返回byte[]

18.getbytes(编码): unicode(默认)转为指定编码格式的字节数组

19.toCharArray(): 字符串转为char[]数组

20.String.valueOf(各种数据):将任何数据转为字符串

21.matches(regex): 判断当前字符串能否与正则表达式匹配

22.replaceAll(regex, 子串):将所有找到的匹配子串,替换为新的子串

23.replaceFirst(regex, 子串):替换第一个找到的匹配子串

24.split(regex): 用匹配的子串,拆分字符串。

 

可变的字符序列:(两者有兼容的API

StringBuilder:单线程情况下使用这个更高效率

StringBuffer:多线程下使用这个,安全(多了线程安全保护)

 

1、   append(内容): 末尾追加字符,高效的字符串连接

2、   delete(int start, int end): 删除[start, end),通常都是左闭右开区间

3、   deleteCharAt(int index): 删除单个字符

4、   insert(int index, 子串):在index位置,插入一个子串。

5、   replace(int start, int end, String s):[start, end)替换为指定字符串s.

6、   reverse(): 翻转字符串

7、   setCharAt(int index, char ch): index位置替换为字符ch

8、   toString(): 转为String类型

 

2. 正则表达式

java.util.regex.Pattern

java.util.regex.Matcher

 

创建实例:

   Pattern p = Pattern.compile(“正则表达式”);

   //表示一个正则表达式实例

   Matcher m = p.mathcer(待匹配字符串);

   //包装正则表达式和待匹配的字符串

 

Matcher方法:

find();寻找下一个匹配的子串,返回boolean值,表示是否找到匹配子串。

find(int form):从指定位置向后寻找

group() 获得刚刚找到的子串

start():获得刚刚子串的起始位置

end() 获得刚刚子串的结束位置


  正则表达式      匹配的字符

  -------------   --------------------

  a               a

  z               z

  abc             abc

  [abc]           a, b, c

  [a-z]           a, z, k, r, q

  [a-z_A-Z0-9]    a, z, A, Z, 0, 5, 9, _

  [^a-zA-Z]       排除英文字母, 0, _, &, *, #

  [\u4e00-\u9fa5]

 

  \w              单词字符, [a-zA-Z_0-9]

  \W              排除单词字符

  \s              空白字符

  \S              排除空白字符

  \d              数字[0-9]

  \D              排除数字 [^0-9]

  .               任意字符

 

  [abc]?          ? 0个或1

                  a,b,c,,

 

  [abc]+          + 1到多个

                  a, c, aa, bbb, cccc, abcabcabcabcabc

                 

  [abc]*          * 0到多个

                  ,,a, c, aa, bbb, cccc, abcabcabcabcabc

 

  [abc]{3}        aaa, bbb, ccc, abc, cba, aab, cca, bbc

  [abc]{2,4}      ab, abc, abcc

  [abc]{2,}       ab, bc, abcabcabcabcaabcabcabc

 

  |               匹配两侧任意一个表达式即可

 

3. 数字运算相关

3.1 Number是数据包装类的抽象父类

ByteShortIntegerLongFloatDouble

 

3.2 自动装箱,自动拆箱

代码的语法简化

自动装箱:

Integer a = 56;

编译为:Integer a = Integer.valueOf(56);

自动拆箱:

int  i = a;

编译为:int I = a.intValue();

a = a + I;

编译为:a = Integer.valueOf(a.intValue() + 1);

自动拆箱当心null值的情况,会抛空指针错误。

 

注意:Integer底层有一个实例缓存区,缓存-128127的包装对象

       Integer a = Integer.valueOf(128);

       Integer b = Integer.valueOf(128);

       System.out.println(a == b);//false

      

       Integer c = Integer.valueOf(127);

       Integer d = Integer.valueOf(127);

       System.out.println(c == d);//true

 

3.3 大数字

java.math.BigDecimal:做精确的浮点数运算

java.math.BigInteger:做超出长整形范围的整数运算。

 

创建实例:

BigDecimal bd = BigDecimal.valueOf(3.14);

 

方法:

    add(BigDecimal bd)

    subtract(BigDecimal bd)

    multiply(BigDecimal bd)

divide(BigDecimal bd)

 

通常divide()方法需要同时指定scale,即舍入方式。如若不然,当除不尽的时候,会抛出算术异常。通常使用:ROUND_HALF_UP。四舍五入

 

数字格式工具:

java.text.DecimalFormat

将数字转为格式字符串

数字格式的字符串,转为数字类型

 

创建实例:

DecimalFormat f = new DecimalFormat(格式字符串);

格式字符串:$###,###,###.000

 

方法:

format(数字):将数字格式化为格式字符串

parse(格式化字符串):将格式化后的字符串还原为数字

 

4. 日期日历相关

4.1  java.util.Date

表示一个时间点

内部包含一个长整形毫秒值

 

创建实例:

   Date d = new Date();

Date d = new Date(365L*24*60*60*1000);指定一个毫秒值时间点

 

方法:

getTime(Long l):获取内部毫秒值

setTime();

 

4.2  java.text.SimpleDateFormat

日期格式化工具

 

创建实例:

  SimpleDateFormat df = new SimpleDateFormat(格式化字符串);

格式化字符串举例:

   yyyy-MM-dd HH:mm:ss

   yy/MM/dd

   yyyyMMdd

 

方法:

   format(Date d) 将实例转为日期格式字符串

   parse(日期格式化字符串):将该字符串解析为Date实例

 

4.3  java.util.Calendar

日历的抽象父类

表示一个时间点

提供日期运算方法

 

创建实例:

   Calendar c = Calendar.getInstance();

   Calendar cc = new GregorianCalendar();

 

方法:

get(字段):获得指定字段的值,Calendar.YEAR

set(字段,值):自改指定字段的值。

set(int year, int month, int date, int hourOfDay, int minute, int second):所有值

add(字段,值):在指定字段上增加一个值c.add(Calendar.YEAR,1);

compareTo(Calendar cc):与另一个日期时间比较,大返回正数。

getActualMaximum(字段):获得指定字段的最大值。

setFirstDayOfWeek(): 设置一周的第一天

getFirstDayOfWeek():获得一周的第一天

getTime():获得表示相同时间的Date类型实例

setTime(Date date):将时间设置为指定Date实例所表示的时间

getTimeInMillis():

setTimeInMillis(long millis)

 

 


本文出自 “一剑围城” 博客,请务必保留此出处http://weijiancheng.blog.51cto.com/10190955/1650354

Android_Log_3_Java基础API

标签:java   正则表达式   字符串   日期   精确运算   

原文地址:http://weijiancheng.blog.51cto.com/10190955/1650354

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!