2019-7-9 [JavaSE] StringBuffer类 装箱和拆箱 日期类 正则
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了2019-7-9 [JavaSE] StringBuffer类 装箱和拆箱 日期类 正则,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8544字,纯文字阅读大概需要13分钟。
内容图文
![2019-7-9 [JavaSE] StringBuffer类 装箱和拆箱 日期类 正则](/upload/InfoBanner/zyjiaocheng/769/c1b335a8f5f1429aba3c5e4f1620d631.jpg)
文章目录
1.StringBuffer类
变长字符串序列。
扩容: int newCapacity = (value.length << 1) + 2;
数组扩容是到之前数据量的两倍
StringBuffer sr = new StringBuffer();
1. // 初始容量 16
System.out.println(sr.capacity());// 16
sr.append("hello");// "hello"
System.out.println(sr.capacity());// 16
sr.append("hellohellohellohello");
System.out.println(sr.capacity());// 34
//-------------------------------------------------
StringBuffer sr = new StringBuffer();
System.out.println(sr);//
/*
* 底层: char[] value;
*/
System.out.println(sr.capacity());// 16
sr.append("hello");
sr.append("hello");
System.out.println(sr);//
System.out.println(sr.capacity());// 16
2.// 减少空间大小为 存储的字符串个数。
sr.trimToSize();
System.out.println(sr.capacity());// 10
方法:
StringBuffer sr = new StringBuffer(1024);
//添加
// 3. 字符串的末尾 追加新串
sr.append("hello");
System.out.println(sr);
// 4. 向参数一位置 插入一个字符串
sr.insert(2, "你好");// "he你好llo"
System.out.println(sr);
// 修改
// 5. 修改指定位置的字符
sr.setCharAt(2, '您');
System.out.println(sr); // he您好llo
// 删除
// 6. 删除指定位置的一个字符
sr.deleteCharAt(2);
System.out.println(sr);// he好llo
// 7 删除范围内的字符序列
sr.delete(3, 5);
System.out.println(sr);// he好o
// 8. 反转字符串
sr.reverse();
System.out.println(sr);// o好eh
利用StringBuffer开头与结束的时间计算:
public class TestStringBuffer5_exam {
public static void main(String[] args) {
long start = System.currentTimeMillis();
StringBuffer sf = new StringBuffer();
for(int i = 1; i <= 10000; i ++) {
sf.append(i);
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}
String ,StringBuffer,StringBuilder
String:
表示一个字符串。
不可变类,定长。
频繁的修改字符串的字符序列,效率很低。
StringBuffer 和 StringBuilder
可变字符串类,变长。
StringBuffer :线程安全的。 synchronized同步。
StringBuilder : 线程非安全的。
2.装箱和拆箱
int n = 11;
//装箱:把基本数据类型包装成对象
Integer i = new Integer(n);
i = Integer.valueOf(n);
// 自动装箱
i = n; // Integer.valueOf(n);
//
* 整数类型: Byte,Short,Integer,Long : -128 到 127
* 布尔: 全都缓冲。
* 字符: 0 - 127
//
// 拆箱: 把对象中的数据取出来
n = i.intValue();
// 自动拆箱
n = i;// i.intValue()
----------------------判断-----------------------------------
Integer i1 = 11;// int -> Integer 自动装箱 Integer.valueOf(11);
Integer i2 = 11;
System.out.println(i1 == i2);// true
Integer i3 = 888;// int -> Integer 自动装箱 Integer.valueOf(888); new Integer(888)
Integer i4 = 888;// new Integer(888)
System.out.println(i3 == i4);// false
----------------------------------------------------------------
// 转换
// int -> String length()
int num = 33;
String str = num + ""; // 常用
str = Integer.toString(num);
str = String.valueOf(num);
// int - > String ->StringBuffer
num = Integer.parseInt(str);
num = Integer.valueOf(str);
// 进制
System.out.println(Integer.toBinaryString(5));//101
System.out.println(Integer.toOctalString(15));// 17
System.out.println(Integer.toHexString(25));// 19
System.out.println(Integer.valueOf("101", 2));// 5
System.out.println(Integer.valueOf("17", 8));// 15
System.out.println(Integer.valueOf("19", 16));// 25
3.日期类
---------------------Date 父类 java.util--------------------------------
1// 获得系统的日期和时间
System.out.println(System.currentTimeMillis());//毫秒 long
java.util.Date date = new java.util.Date();
2// 创建了一个 系统的日期和时间类型
System.out.println(date);// Tue Jul 09 15:55:01 CST 2019
3// 获得的是 当前系统日期和时间的毫秒值
System.out.println(date.getTime());// long
* Tue Jul 09 15:58:14 CST 2019
1562659094528
4// 封装某一个时刻
java.util.Date date1 = new java.util.Date(1562659094528L);
System.out.println(date1);//Tue Jul 09 15:58:14 CST 2019
System.out.println(date1.getYear() + 1900);//2019
System.out.println(date1.getMonth() + 1);//7
System.out.println(date1.getDate());//9
------------------------Date子类- java.sql------------------------------------
5// 日期 Date---------------------------------------------
Date dt1 = new Date(date.getTime());
System.out.println(dt1); // 2019-07-09
6// 日期 -》 字符串
String sdt = dt1.toString();
7// 字符串 -》 日期
dt1 = Date.valueOf(sdt);
8// 时间-------------------------------------------
Time time1 = new Time(date.getTime());
System.out.println(time1);// 16:09:58
9// 时间 - 》 字符串
String stime = time1.toString();
10// 字符串 -》 时间
time1 = Time.valueOf(stime);
11// 时间戳 :日期+ 时间 -------------------------------------
Timestamp stamp = new Timestamp(date.getTime());
System.out.println(stamp);// 2019-07-09 16:11:54.191
---------------------------Calendar 日历类------------------------------------
12// 获得一个 实例(对象)
Calendar c = Calendar.getInstance();
13// 获得日历表示的当前的 系统日期时间
System.out.println(c.getTime());// Tue Jul 09 16:16:31 CST 2019
14// 获得日期中的某一个部分
System.out.println(c.get(Calendar.YEAR));// 2019
System.out.println(c.get(Calendar.MONTH) + 1);// 6 + 1
System.out.println(c.get(Calendar.DATE));// 9
15// 设置日期时间
Calendar c1 = Calendar.getInstance();
c1.set(2010, 5, 22);
System.out.println(c1.getTime());// Tue Jun 22 16:21:33 CST 2010
16// 计算
c1.add(Calendar.YEAR, 10); // 10年后
System.out.println(c1.getTime());// Mon Jun 22 16:23:14 CST 2020
----------------------------格式化--------------------------------------------
17// 日期格式化 --------------------------------------------
// Tue Jul 09 16:24:04 CST 2019
System.out.println(date);
18// DateFormat
DateFormat df = DateFormat.getInstance();
System.out.println(df.format(date));// 19-7-9 下午4:28
19// SimpleDateFormat
// 年 y 月 M 日 d 小时 h H 分 m 秒 s 毫秒 S
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd hh小时mm分ss秒SSS毫秒");
System.out.println(sdf.format(date));// 2019年07月09 04小时33分25秒879毫秒
sdf = new SimpleDateFormat("yyyy-MM-dd H:mm:ss.SSS");
System.out.println(sdf.format(date));// 2019-07-09 16:34:27.617
// 数字 格式化--------------------------------------------
20// NumberFormat ------
// NumberFormat format = NumberFormat.getInstance();
// System.out.println(format.format(35.4565757));// 35.457
//
// 0 一个数字 用0补位
// # 不用补位
DecimalFormat dformat = new DecimalFormat("00.00");
System.out.println(dformat.format(55.547568));// 55.55
System.out.println(dformat.format(5.5));// 05.50
dformat = new DecimalFormat("##.##");
System.out.println(dformat.format(5.5));
4.正则
正则表达式:是一个模式匹配的规则。
正则验证一:
定义正则表达式: Pattern.compile(regString,);
表达式的模式:Matcher matcher = ptn.matcher("需要匹配的数据");
验证:matcher.matches()
验证一:
// 6位数字
// [0-9]{6} \\d{6}
// 验证一:
Pattern p = Pattern.compile("\\d{6}");
Matcher m = p.matcher("123456");
System.out.println(m.matches());//
正则验证二:
验证二: 用String的方法
// 1. 数字
String s = "64565";//
System.out.println(s.matches("[0-9]+"));
// 2. 分割
String s1 = "aa.bb.cc.dd.ee";
String [] strs = s1.split("\\.");
System.out.println(Arrays.toString(strs));
//3. 去掉数字
String s3 = "43fld23sjfe45";
System.out.println(s3.replaceAll("[a-zA-Z]+", ""));
5.编写:StringBuffer
编写一个一直输入名称的,直到输入q为止
import java.util.Scanner;
public class TestStringBuffer4_exam {
public static void main(String[] args) {
String name;
Scanner input = new Scanner(System.in);
// String sum = "";
StringBuffer sf = new StringBuffer();
while(true) {
System.out.println("--输入名字:");
name = input.next();
if(name.equals("q")) {
break;
}
// sum += name;// sum = sum + name;
sf.append(name);
}
System.out.println(sf);
}
}
6.编写:包装类 统计字符串中指定类型的个数
public class TestCharacter_exam {
public static void main(String[] args) {
// 统计字符串中 空格 、字母、数字 的个数
// String s = "af d 4565 222@@@";
String s = "a b c 456@@@";// input.nextLine()
char [] crs = s.toCharArray();
int count1,count2,count3;
count1 = count2 = count3 = 0;
法1: for(char cr : crs) {
if(cr >= 'a' && cr <= 'z' || cr >= 'A' && cr <= 'Z') {
count1 ++;
}
if(cr >= '0' && cr <= '9') {
count2 ++;
}
if(cr == ' ') {
count3 ++;
}
}
法2: for(char cr : crs) {
if(Character.isUpperCase(cr) || Character.isLowerCase(cr)) {
count1 ++;
}
if(Character.isDigit(cr)) {
count2 ++;
}
if(Character.isWhitespace(cr)) {
count3 ++;
}
}
System.out.println("字母:" + count1 + ",数字" + count2 + ",空格" + count3);
}
7.注意:
String s1 ="123456";
System.out.println(s1.matches("\\d{6}"));
String s2 ="13455646663";//
System.out.println(s2.matches("1{1}[0-9]{10}"));
String s3 ="asdfg12345";//
System.out.println(s3.matches("[a-zA-Z0-9]{4}[a-zA-Z0-9]{0,6}"));
String s4 ="asdfg12345";//
System.out.println(s4.matches("[a-zA-Z]{1}[a-zA-Z0-9]{3}[a-zA-Z0-9]{0,12}"));
内容总结
以上是互联网集市为您收集整理的2019-7-9 [JavaSE] StringBuffer类 装箱和拆箱 日期类 正则全部内容,希望文章能够帮你解决2019-7-9 [JavaSE] StringBuffer类 装箱和拆箱 日期类 正则所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。