-----------------------------------第六章:常用类----------------------------------
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类的对象,它既可表示为目录也可表示为文件
那么它们什么时候是目录,什么时候是文件呢?
这取决于你如何创建它,看如下示例:
那么如果我想d4是文件,其他是目录怎么办?看如下示例:
这个时候d4就成了一个文件了,其他是目录。
注意:不论在windows下还是linux下,/永远可以作为路径的分隔符。
其他File类的一些常用方法
--------------------------------------------------
java.lang.Enum枚举类型
public enum MyColor { RED,BLUE,YELLOW};
MyColor myColor = MyColor.RED;
2013-01-30 10:31:23:12 CST 30 公元 星期三 上午
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之间不能转换。
-----------------------------------------时间日期--------------------------------
字母 | 日期或时间元素 | 表示 | 示例 |
---|---|---|---|
G | Era 标志符 | Text | AD |
y | 年 | Year | 1996 ; 96 |
M | 年中的月份 | Month | July ; Jul ; 07 |
w | 年中的周数 | Number | 27 |
W | 月份中的周数 | Number | 2 |
D | 年中的天数 | Number | 189 |
d | 月份中的天数 | Number | 10 |
F | 月份中的星期 | Number | 2 |
E | 星期中的天数 | Text | Tuesday ; Tue |
a | Am/pm 标记 | Text | PM |
H | 一天中的小时数(0-23) | Number | 0 |
k | 一天中的小时数(1-24) | Number | 24 |
K | am/pm 中的小时数(0-11) | Number | 0 |
h | am/pm 中的小时数(1-12) | Number | 12 |
m | 小时中的分钟数 | Number | 30 |
s | 分钟中的秒数 | Number | 55 |
S | 毫秒数 | Number | 978 |
z | 时区 | General time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z | 时区 | RFC 822 time zone | -0800 |
@Test
public 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 公元 星期三 上午