一、String类
1.在java中String类比较特殊,它是一种引用数据类型,位于java.lang包中。
2.String类的常用方法
(1)length()方法,是求字符串的长度
String str="abcdefg";
int s=str.length();
//注意,length()方法返回值是int类型,获得字符串的长度
(2)equals()方法,是比较两个字符串的值是否相同。返回值是boolean 值,true或者false。==判断的是内存地址。
注意:在java中,String类的 == 双等于表示判断内存地址是否相等,equals()判断内容是否相同,也就是判断里面的值是否相同,它是一个字符一个字符去比较的。String类特殊是因为它已经重写了equals()方法。非String类的类类型 == 双等于比较是内存地址,equals()比较的还是内存地址。如果要比较里面的值是否一样,那么就需要去重写equals()方法!!!
(3)equalsIgnoreCase()方法,可以忽略大小写比较字符串。
String str1="TOM";
String str2="tom";
System.out.println(str1.equalsIgnoreCase("tom"));
//忽略大小写比较两个字符串
(4)toLowerCase():转换字符串为小写。toUpperCase():转换字符串为大写。
String s1="aaa";
String s2="AAA";
System.out.println(s1.toUpperCase(s2));
//将s1字符串常量值转换成大写,然后和s2进行比较,返回true.
(5)字符串的连接:如 “+” 或者 字符串.concat();
String s1="你好!";
String s2=s1+"java";
或者:
String s3=s1.concat("java");
//这两种连接字符串的效果是一样的。
(6)字符串的查询和提取
方法 | 说明 |
pubic int index(int ch) | 返回第一个出现字符ch的位置,位置从0开始,找不到返回-1 |
public int index (String value) | 返回第一个出现字符串ch的位置,位置从0开始,找不到返回-1 |
public int lastIndexOf(int ch) | 返回最后一个出现字符的位置,找不到返回-1 |
public int lastIndexOf(String ch) | 返回最后一个出现字符串的位置,找不到返回-1 |
public String substring(int index) | 提取从指定位置开始的部分字符串,从索引位置开始,包含起始位置 |
public String substring(int a,int b) | 提取a和b之间的字符串,从a索引位置开始,到结束位置-1 |
public String trim() | 去字符串的前后空格 |
(6)字符串拆分 split()方法。
String s4= "This is my dog";
String s[]=new String[s4.length()]; //定义数组去接收
s=s4.split(" "); //拆分字符串
for (int i = 0; i < s.length; i++) {
System.out.println(s[i]); //输出拆分后的字符串
}
二、StringBuffer类和StringBuilder类
1.StringBuffer类属于线程安全的,它可以储存,连接操作字符串,使用效率比String类更加高效。
位于java.uti包中,是String类的增强类。
StringBuffer sf=new StringBuffer("我爱编程"); //创建StringBuffer对象
//1.toString()方法,
String s1=sf.toString(); //将StringBuffer转换成String类
//2.append()方法,追加字符串
String s2=sf.append("java").toString; //在sf对象后面之间追加字符串,它改变的是本身的值
//3.insert()方法,插入字符串
String s3=sf.insert(2, ",").toString(); //返回值2是位置,后面的是要插入的参数,类型不限!
2.StringBuilder类
它位于java.lang.StringBuilder,是JDK5.0新增的类。它是线程不安全,它比StringBuffer类执行要快。
3.String 类 和StringBuffer类,StringBuilder类对比
-
String:是字符串常量,是不可变的对象,每次改变的是生成的String对象,然后指向的副本。操作字符串效率低
-
StringBuffer:字符串变量。它是可变的字符串,操作时改变的是本身,效率高,推荐使用。
-
StringBuilder:字符串变量。他和StringBuilder类等价。区别是StringBufrer是线程安全,而StringBuilder是线程不安全的。
三、日期操作类
1.Data类
Data类对象用来表示日期和时间。一般用其子类SimpleDateFormat
public class Test {
public static void main(String[] args) {
Date date=new Date(); //实例化时间类
//获取当前系统时间,使用SimpleDateFormat类格式化时间
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=format.format(date); //返回值是String类型
System.out.println("当前时间为:"+time);
}
}
2.Calendar类
Calendar类也是用来操作日期和时间的类,它可以看作是Date类的增强类。因为本身是抽象类,可以通过getInstance()获得Calender类的对象
四、Random类
Random类用来生成随机数。
Random rand=new Random ();
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//创建一个Random对象
Random rand=new Random();
//产生随机数是0~9之间
int num=rand.nextInt(10);
System.out.println("随机数是:"+num);
}
}