常用类总结

来源:互联网 发布:mysql从入门到精通 编辑:程序博客网 时间:2024/06/05 19:00
-----------------------------------第六章:常用类----------------------------------
String的增删改查和求子串
java中字符串是不可变的,所以在原串上不能增删改。
关键是查,一个字符串在另一个字符串中的位置
增:+ 只能增加到结尾,不能从中间插入
删:
public String substring(int beginIndex)  //到结尾
public String substring(int beginIndex,int endIndex) //不包括endIndex
public String trim()  //删除两边的空白符
改:
public String replace(char oldChar,char newChar)
public String replaceAll(String regex,String replacement)
查:
从0开始找,找不到返回-1
public int indexOf(String str)
从fromIndex开始找,找不到返回-1
public int indexOf(String str,int fromIndex)
//这个方法用indexOf是否返回0代替
public boolean startsWith(String prefix)
public boolean endsWith(String suffix)


两外几个常用方法:
public char charAt(int index)
public static String valueOf(int/double/boolean...)
public String[] split(String regex)
--------------------------------------------------------------------
StringBuffer类----可变的字符串
增:
结尾增
public StringBuffer append(String str)
public StringBuffer append(StringBuffer sb)
public StringBuffer append(char[] str)
public StringBuffer append(char[] str,int offset,int length)
public StringBuffer append(double d)
public StringBuffer append(Object obj)
中间增(插入),这个是String没有的,但也可以实现,只是稍微麻烦
public StringBuffer insert(int offset,String str)
public StringBuffer insert(int offset,double d)
....
删:
删除从start开始,end-1结束的字符串,这个也是String没有的,可以实现,但是稍微麻烦
public StringBuffer delete(int start,int end)
delete是删中间,留两头,substring是删两头,留中间
StringBuffer同样有同String类型的方法
public String substring(int start)
public String substring(int start,int end)
改:
没有String的改功能多,推荐用String的replace方法
查:
和String一样


StringBuffer和String之间的转换
StringBuffer对象调用toString()方法转换为String
由String得到相应的StringBuffer对象必须通过StringBuffer的构造函数
String和char[]之间的转换
String对象通过调用toCharArray()返回char[]对象
char[]对象通过toString()直接转换成String对象


总结一下String和StringBuffer,StringBuffer平时用的不多,功能大体上和String差不多,但有几个自己特色
1、删(插入)中间,留两头
可以先将String转换成StringBuffer,调用delete方法后再转成String
直接使用String的话,需要两次substring,麻烦一点
2、StringBuffer有reverse()方法,可以直接逆序,这个是String没有的功能
并不是所有的String的方法StringBuffer都有的,如StringBuffer就没有startsWith()和endsWith()方法,所以除了有上面
两点需求外,都用String吧。
---------------------------------------------------------------------------
Math类
Math类注意两个方法就可以了
Math.toDegrees()  弧度-->角度
Math.toRadians()  角度-->弧度
---------------------------------------------------------------------------
File类
File类的对象,它既可表示为目录也可表示为文件
那么它们什么时候是目录,什么时候是文件呢?
这取决于你如何创建它,看如下示例:

import java.io.File;public class TestFile2 {public static void main(String[] args) {File f1 = new File("f:/d1/d2/d3/d4");if (!f1.exists()) {f1.mkdirs();}}}

若F盘下面没有这些目录,那么f1.mkdirs()就会把d1,d2,d3,d4都当成目录,这样执行完成后,这几个都是目录
那么如果我想d4是文件,其他是目录怎么办?看如下示例:

import java.io.File;import java.io.IOException;public class TestFile2 {public static void main(String[] args) {File f1 = new File("f:/d1/d2/d3/d4");if (!f1.exists()) {// f1.mkdirs();f1.getParentFile().mkdirs();try {f1.createNewFile();} catch (IOException e) {e.printStackTrace();}}}}

这个时候d4就成了一个文件了,其他是目录。
注意:不论在windows下还是linux下,/永远可以作为路径的分隔符。
其他File类的一些常用方法

import java.io.File;import java.io.IOException;public class TestFile2 {public static void main(String[] args) {File f1 = new File("f:/d1/d2/d3/d4");if (!f1.exists()) {// f1.mkdirs();f1.getParentFile().mkdirs();try {f1.createNewFile();} catch (IOException e) {e.printStackTrace();}}System.out.println(f1.getPath());System.out.println(f1.getAbsolutePath());System.out.println(f1.getName());System.out.println(f1.isDirectory());System.out.println(f1.canRead());System.out.println(f1.canWrite());System.out.println(f1.isFile());System.out.println(f1.lastModified());System.out.println(f1.isHidden());// 注意:f1.delete()只会删除最后的文件,不会删除前面的目录f1.delete();System.out.println(f1.exists());}}

--------------------------------------------------
java.lang.Enum枚举类型
public enum MyColor { RED,BLUE,YELLOW};
MyColor myColor = MyColor.RED;

注意:java中枚举类型和int之间不能转换。

-----------------------------------------时间日期--------------------------------

字母日期或时间元素表示示例GEra 标志符TextADy年Year1996; 96M年中的月份MonthJuly; Jul; 07w年中的周数Number27W月份中的周数Number2D年中的天数Number189d月份中的天数Number10F月份中的星期Number2E星期中的天数TextTuesday; TueaAm/pm 标记TextPMH一天中的小时数(0-23)Number0k一天中的小时数(1-24)Number24Kam/pm 中的小时数(0-11)Number0ham/pm 中的小时数(1-12)Number12m小时中的分钟数Number30s分钟中的秒数Number55S毫秒数Number978z时区General time zonePacific Standard Time; PST; GMT-08:00Z时区RFC 822 time zone-0800

@Testpublic void testTime() {DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:S z D G E a ");System.out.println(dateFormat.format(new Date()));}

2013-01-30 10:31:23:12 CST 30 公元 星期三 上午 

原创粉丝点击