写在最前,该笔记整理来源互联网,由于不知出处,如侵则删,自用学习
[知识要点]:熟练应用Java语言的工具类库。
一.掌握:String 类对象和 StringBuffer 类对象的创建、使用和操作
String类的初始化
在操作String类之前需要对其进行初始化,常见的的方式有两种:
1.使用字符串常量直接初始化一个String对象,具体代码如下:
String str1 = "abc";
2.使用String的构造方法初始化对象,具体代码如下:
String str1 = new String();
String str2 = new String("abcd");
char[] charArry = new char[]{'D','E','F'};
Stirng str3 = new String(charArry);
System.out.println("a"+str1+"b");
System.out.println(str2);
System.out.print(str3);
String类的常见操作
字符串的基本操作
String s = "abcdefg";
//字符串中第一个出现的位置
System.out.println(s.charAt(0));
//第一次出现C的位置(可以是子字符串想·)
System.out.println(s.indexOf('c'));
//最后一次出现C的位置
System.out.println(s.lastIndexOf('c'));
字符串的转换操作
String s1 = "ancd";
//将字符串转为字符数组后的结果
char[] charArray = str.toCharArry();
for(int i =0;i<charArray.length.i++){
//如果不是数组的最后一个元素,在元素的后面加逗号。
if(i!= charArry.lengyh-1){
System.out.println(charArray[i]+",");
}
//数组的最后一行元素后面不加逗号。
else{
System.out.println(charArray[i]);
}
}
//将int值转换为String类型
System.out.println(String.valueOf(12));
//将字符串大写
System.out.println(String.toUpperCase());
}
字符串的替换和去除空格操作
String s = "pzyruo";
//将p替换为H
System.out.println(s.replace("p","H"));
//将字符串首尾的空格去除
System.out.println(s.trim());
//将字符串中所有空格去除
System.out.println(s.replace(" ",""));
字符串的判断操作
String s = “GameForGo”;
String s2 = “Game”;
//判断是否是以"Game"开头/结尾
System.out.println(s.startWith(“Game”));//endWith(“Game”);
//判断是否包含字符串
System.out.println(s.contains(“Game”));
//判断是否为空
System.out.println(s.isEmpty());
//判断两个字符串是否相等
System.out.println(s1.equals(s2));
字符串的截取与分割
String s = “123456789”;
//从第五个开始截取/5到6
System.out.println(s.substring(4));//(4,6)
//字符串分割 Python比java简单
StringBuffer类
StringBuffer和String最大的区别在于它的长度和内容都是可以改变的。StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象,而String则是一个常量。
public class StringBuff {
public static void main(String[] args) {
System.out.println("1.添加---------------------------------------------");
add();
System.out.println("2.删除----------------------------------------------");
delete();
System.out.println("3.替换----------------------------------------------");
alter();
}
public static void add() {
StringBuffer sb = new StringBuffer("abcdefg");
sb.append("hijklmn");
System.out.println("添加后"+sb);
sb.insert(2, "我");
System.out.println(sb);
}
public static void delete() {
StringBuffer sb = new StringBuffer("abcdefg");
sb.delete(2, 5);
System.out.println(sb);
sb.deleteCharAt(3);
System.out.println(sb);
}
public static void alter() {
StringBuffer sb = new StringBuffer("abcdefg");
sb.replace(1, 5, "kkkk");
System.out.println(sb);
System.out.println(sb.reverse());
}
}
StringBuffer和String的区别
String 是字符串常量,一旦创建后无法进行修改。而StringBuffer表示字符容器,其内容和长度可以随时修改。在操作字符时,如果仅表示数据类型,使用String即可。但是如果需要对自字符串进行增删操作,则使用StringBuffer。
String类覆盖率Object的equals()方法,而StringBuffer类没有覆盖。换句话说,使用Sting创建的对象比较之后是true,使用StringBuffer创建的话是false。
String可以使用+"进行连接,而StringBuffer不能。
记录子串在字符串中出现的次数
public class StringTest {
public static void main(String[] args) {
String str = "nbakjslkdjasnbaasjlkdjnbaskdlknbaksdnbalksdlnba";
String key = "nba";
int count = getKey(str ,key);
System.out.println(count);
}
public static int getKey(String str,String key) {
int count = 0;
if(!str.contains(key)) {
return count;
}
int index = 0;
while((index = str.indexOf(key))!=-1) {
str = str.substring(index+key.length());
count++;
}
return count;
}
}
二.掌握:Date、DateFormat、Random、Locale、Math等常用类
1、Date类
构造方法:
public Date();//表示当前系统时间的Date对象
public Date(long time)//代表距离标准时间time毫秒值的Date对象
成员方法:
public long getTime();//获取当前Date对象的毫秒值
2、DateFormat类,用于格式化日期的类,为抽象类,不可以直接用它创建对象,常用其子类SimpleDateFormat;
构造方法:
public SimpleDateFormat(String pattern);//以指定的模式创建格式化对象
成员方法:
public String format(Date d);//把date对象按照指定的模式 转成字符串
public Date parse(String s);//把字符串转成Date对象,如果字符串有问题,就会抛出ParseException
其中pattern字符串的含义列表如下:
DateFormat类的常用方法有:
public String format(Date date):将Date对象格式化为字符串。
public Date parse(String source):将字符串解析为Date对象。
format方法
使用format方法的代码为:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
把Date对象转换成String
*/
public class Demo03DateFormatMethod {
public static void main(String[] args) {
Date date = new Date();
// 创建日期格式化对象,在获取格式化对象时可以指定风格
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
String str = df.format(date);
System.out.println(str); // 2008年1月23日
}
}
parse方法
使用parse方法的代码为:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
把String转换成Date对象
*/
public class Demo04DateFormatMethod {
public static void main(String[] args) throws ParseException {
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
String str = "2018年12月11日";
Date date = df.parse(str);
System.out.println(date); // Tue Dec 11 00:00:00 CST 2018
}
}
3、Calenedar类
该类仍为抽象类,通常借用getInstance();方法获取该类的子类的对象,再进行相关方法的调用。
构造方法:
public static Calendar getInstance();
成员方法:
public int get(int field);//获取指定字段的值
public void add(int field,int amount);//给指定的字段增加值
public void set(int field,int value);//修改指定字段的值
public Date getTime();//把Calendar对象转成Date 对象
其中 public int get(int field);方法,通常会使用Calender类中的静态成员变量作为实参调用该方法,例如:
Calendar cal = Calendar.getInstance();
cal.get(Calendar.YEAR);
Calendar类中的静态成员列表参见API,通常将其命名翻译为中文即可获知其含义。
需要注意的是,Calender类中获取到的MONTH值为0-11,用于表示1到12月
4、System类
public static void exit(0);//结束JVM
public static void gc();//通知垃圾回收器过来收垃圾
public static getProperty(String key);//根据键 获取值
public static long currentTimeMillis();//获取当前系统的毫秒值
5、Math类
public static double max(double d1,double d2);//求最大值
public static double min(double d1,double d2);//求最小值
public static double abs(double d);//取绝对值
public static double random();//返回一个随机数,范围 [0,1)
public static long round(double d);//四舍五入,只看小数的第一位
public static double pow(double d1, double d2);//求次幂(次方)
public static double ceil(double a);//ceil 天花板,向上取整
public static double floor(double a);//floor 地板.向下取整