String类
构造方法:
String() | 初始化一个新创建的 String 对象,它表示一个空字符序列。 |
String(String orig) | 初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的一个副本。 |
String(byte[] bytes, int offset, int length) | 构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。 |
初始化举例:
String s1="";
String s2=new String();
String s3=new String("aaa");
常用方法:
返回类型 | 方法 | 说明 |
char | charAt(int index) | 返回指定索引处的 char 值 |
boolean | equals(Object anObject) | 比较此字符串与指定的对象 |
boolean | equalsIgnoreCase(String anotherString) | 将此 String 与另一个 String 进行比较,不考虑大小写 |
boolean | endsWith(String suffix) | 测试此字符串是否以指定的后缀结束 |
boolean | startsWith(String prefix) | 测试此字符串是否以指定的前缀开始 |
int | indexOf(String str) | 返回第一次出现的指定子字符串在此字符串中的索引 |
int | length() | 返回此字符串的长度 |
String | replace(char oldChar, char newChar) | 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的 |
String[] | split(String regex) | 根据给定的正则表达式的匹配来拆分此字符串 |
String | substring(int beginIndex) | 返回一个新的字符串,它是此字符串的一个子字符串 |
String | substring(int beginInde, int endIndex) | 返回一个新字符串,它是此字符串的一个子字符串 |
String | toLowerCase() | 使用默认语言环境的规则将此 String 中的所有字符都转换为小写 |
String | toUpperCase() | 使用默认语言环境的规则将此 String 中的所有字符都转换为大写 |
String | trim() | 返回字符串的副本,忽略前导空白和尾部空白 |
说明:equals和==的区别:
equals,比的是内存地址中的数据,比较引用型数据
==,比的是内存地址,比较基本型数据
举例:
String s="abcvvvdef";
System.out.println(s.substring(3,6));//“vvv”
String s=" vvv ";
System.out.println(s);//" vvv "
System.out.println(s.trim());//"vvv"
String s="随便.mp3";
if(s.endsWith(".mp3")){
System.out.println("是mp3文件");
}else{
System.out.println("不是mp3文件");
}
//简易判断的格式是否正确:xxx@xxx.xxx
String email="vvv@126.com";
if(email.indexOf("@")>0&&email.indexOf(".")>0&&(email.indexOf(".")-email.indexOf("@")>0)){
System.out.println("正确");
}else{
System.out.println("错误");
}
String s="abcvvvdef";
System.out.println(s.replace("vvv", "sss"));//“abcsssdef”
String fav="篮球,足球,乒乓球,羽毛球";
String[] ss=fav.split(",");
for (int i = 0; i < ss.length; i++) {
System.out.println(ss[i]);
}
StringBuffer类
带缓冲区的字符串。Buffer,缓冲区(缓存),只要看到Buffer字样,就是“高效”的代名词。
public static void main(String[] args) {
long start=System.currentTimeMillis();
String s1="";
for (int i = 0; i < 100000; i++) {
s1=s1.concat("s");
}
System.out.println(System.currentTimeMillis()-start);
start=System.currentTimeMillis();
StringBuffer s2=new StringBuffer("");
for (int i = 0; i < 100000; i++) {
s2.append("s");
}
System.out.println(System.currentTimeMillis()-start);
}
String和StringBuffer的区别:对于经常改变的字符串建议使用StringBuffer。
Random类
主要方法:nextInt(int n)【返回int型】
说明:返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
Random r=new Random();
int i=r.nextInt(10);
System.out.println(i);
System类
字段摘要:
类型 | 字段 | 说明 |
static PrintStream | err | “标准”错误输出流 |
static InputStream | in | “标准”输入流 |
static PrintStream | out | “标准”输出流 |
常用方法:
static long | currentTimeMillis() | 返回以毫秒为单位的当前时间 |
static String | getProperty(String key) | 获得指定键指示的系统属性 |
static void | exit(int status) | 终止当前正在运行的 Java 虚拟机 |
Date类(SimpleDateFormat类、Calendar类)
类Date表示日期。 类 SimpleDateFormat表示简单日期格式的转换,其中方法format,将Date转成String;方法parse,将String转成Date。
public static void main(String[] args) {
Date now=new Date();
System.out.println(now.getYear());
System.out.println(now.getMonth());
System.out.println(now.getDate());
System.out.println(now.getHours());
System.out.println(now.getMinutes());
System.out.println(now.getSeconds());
System.out.println(now);//Fri Sep 23 19:36:46 CST 2016(时间戳)
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s=sdf.format(now);
System.out.println(s);//2016-09-23 19:36:46
String s="2008-08-08";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date d=sdf.parse(s);
System.out.println(d);
}
类Calendar 对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值。
public static void main(String[] args) {
Calendar c=new GregorianCalendar();
System.out.println(c.get(c.YEAR));
System.out.println(c.get(c.MONTH));
System.out.println(c.get(c.DAY_OF_MONTH));
System.out.println(c.get(c.HOUR_OF_DAY));
System.out.println(c.get(c.MINUTE));
System.out.println(c.get(c.SECOND));
}
Timer类(TimerTask类)
Timer类表示计时类,TimerTask类表示计时处理类
public class Main {
public static void main(String[] args) {
Timer t=new Timer();
MyTask m=new MyTask();
//三个参数(执行哪个处理类,延迟多少毫秒开始执行,每次执行间隔时间)
t.schedule(m,0,1000);//将一直输出当前时间
}
}
//一个自定义类,如果想要具备某些能力,要么继承,要么实现接口
public class MyTask extends TimerTask{
public void run() {
SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");
System.out.println(sdf.format(new Date()));
}
}
Properties类
对应着.properties文件,存储方式很像Map(键值对),其中常见方法如下:
返回类型 | 方法 | 说明 |
String | getProperty(String key) | 用指定的键在此属性列表中搜索属性 |
Object | setProperty(String key, String value) | 调用 Hashtable 的方法 put |
应用举例:
public static void main(String[] args) throws Exception{
//保存
Properties p=new Properties();
p.setProperty("en", "英文");
p.setProperty("cn", "中文");
p.setProperty("jp", "日文");
File f=new File("data/language.properties");
p.store(new FileOutputStream(f), "info");
//加载
Properties p=new Properties();
File f=new File("data/language.properties");
p.load(new FileInputStream(f));
System.out.println(p.getProperty("jp"));
}