一:主要内容
二:字符串相关类
1 package TestString;
2
3 import org.junit.Test;
4
5 public class TestString {
6 /*
7 * String:代表不可变的字符序列。底层使用char[]存放。
8 * String 是final的。
9 */
10 @Test
11 public void test1(){
12 String str1 = "aa";
13 String str2 = "aa";
14 String str3 = new String("aa");//在堆里面创建一块新地址,存储的value是指定常量池里面aa的地址引用
15 System.out.println(str1==str2);//true 指向常量池同一块地址
16 System.out.println(str1==str3);//false 两者地址不同
17 System.out.println(str1.equals(str3));//true 比较的是内容
18 String str4 = "123";
19 String str5 = str1+str4;
20 String str6 = "aa"+"123";
21 String str7 = "aa123";
22 System.out.println(str5 == str7);//false 含有变量的表达式相当于在堆里面产生了一个新地址
23 System.out.println(str7 == str6);//true 指向同一块地址
24 System.out.println(str6 == str5.intern());//true 取得是地址里面存储的引用地址和str6指向的是同一块内存
25 System.out.println(str5 == str6.intern());//false 对str6无效
26 Person p1 = new Person("AAA");
27 Person p2 = new Person("AAA");
28 System.out.println(p1.name == p2.name);//true
29 }
30 /*
31 * public int length() public char charAt(int
32 * index):返回在指定index位置的字符。index从0开始 public boolean equals(Object
33 * anObject):比较两个字符串是否相等。相等返回true。否则返回false public int compareTo(String
34 * anotherString) public int indexOf(String s):返回s字符串在当前字符串中首次出现的位置。若没有,返回-1
35 * public int indexOf(String s ,int
36 * startpoint):返回s字符串从当前字符串startpoint位置开始的,首次出现的位置。 public int
37 * lastIndexOf(String s):返回s字符串最后一次在当前字符串中出现的位置。若无,返回-1 public int
38 * lastIndexOf(String s ,int startpoint) public boolean startsWith(String
39 * prefix):判断当前字符串是否以prefix开始。 public boolean endsWith(String
40 * suffix):判断当前字符串是否以suffix结束。 public boolean regionMatches(int
41 * firstStart,String other,int otherStart ,int length):
42 * 判断当前字符串从firstStart开始的子串与另一个字符串other从otherStart开始,length长度的字串是否equals
43 */
44 @Test
45 public void test2(){
46 String str = "qwqeqdqwd";
47 System.out.println(str.length());
48 System.out.println(str.charAt(0));
49 System.out.println(str.compareTo("aaaaaa"));
50 System.out.println(str.indexOf("w",2));
51 System.out.println(str.lastIndexOf("w"));
52 System.out.println(str.startsWith("q"));
53 System.out.println(str.regionMatches(1,"wqe",0,"qd".length()));
54 }
55
56 /*
57 * public String substring(int startpoint)
58 public String substring(int start,int end):返回从start开始到end结束的一个左闭右开的子串。start可以从0开始的。
59 pubic String replace(char oldChar,char newChar)
60 public String replaceAll(String old,String new)
61 public String trim():去除当前字符串中首尾出现的空格,若有多个,就去除多个。
62 public String concat(String str):连接当前字符串与str
63 public String[] split(String regex):按照regex将当前字符串拆分,拆分为多个字符串,整体返回值为String[]
64
65 */
66 @Test
67 public void test3(){
68 String str1 = "北京尚硅谷教育北京";
69 String str2 = "上海尚硅谷教育";
70 String str3 = str1.substring(2, 5);
71 System.out.println(str3);
72 System.out.println(str1);
73 String str4 = str1.replace("尚硅谷","尚学堂");
74 System.out.println(str4);
75 System.out.println("127.0.0.1".replaceAll("\\d","*"));//replaceAll支持正则表达式的方式进行替换
76 System.out.println(" 123 4 ".trim());
77 System.out.println("aa".concat("bb"));
78 String ip = "127.0.0.1";
79 String[] array = ip.split("\\.");//split是按照正则表达式的方式进行切割
80 for (int i = 0; i < array.length; i++) {
81 System.out.print(array[i]+" ");
82 }
83 }
84 /*
85 * 1.字符串 与基本数据类型、包装类之间转换
86 * ①字符串 --->基本数据类型、包装类:调用相应的包装类的parseXxx(String str);
87 * ①基本数据类型、包装类--->字符串:调用字符串的重载的valueOf()方法
88 *
89 * 2.字符串与字节数组间的转换
90 * ①字符串---->字节数组:调用字符串的getBytes()
91 * ②字节数组---->字符串:调用字符串的构造器
92 *
93 * 3.字符串与字符数组间的转换
94 * ①字符串---->字符数组:调用字符串的toCharArray();
95 * ②字符数组---->字符串:调用字符串的构造器
96 */
97 @Test
98 public void test4(){
99 //1.字符串 与基本数据类型、包装类之间转换
100 String str1 = "123";
101 int i = Integer.parseInt(str1);
102 System.out.println(Boolean.parseBoolean("true"));
103 System.out.println(i);
104 String str2 = i + "";
105 str2 = String.valueOf(i);
106 System.out.println(str2);
107 System.out.println();
108 //2.字符串与字节数组间的转换
109 String str = "abcd123";
110 byte[] b = str.getBytes();
111 for(int j = 0;j < b.length;j++){
112 System.out.println((char)b[j]);
113 }
114 String str3 = new String(b);
115 System.out.println(str3);
116 System.out.println();
117 //3.字符串与字符数组间的转换
118 String str4 = "abc123中国人";
119 char[] c = str4.toCharArray();
120 for(int j = 0;j < c.length;j++){
121 System.out.println(c[j]);
122 }
123 String str5 = new String(c);
124 System.out.println(str5);
125 }
126 }
127 class Person{
128 String name;
129 Person(String name){
130 this.name = name;
131 }
132 }
三:StringBuilder和StringBuffer
1 package TestString;
2
3 import org.junit.Test;
4
5 public class TestStringBuffer {
6 /*
7 * 对比String,StringBuffer,StringBuilder三者在添加上的效率:
8 * 效率从高到底: StringBuilder > StringBuffer > String
9 * StringBuffer支持在原地址上进行内容的修改,是线程安全的,StringBuilder不是线程安全的,但是速度很快
10 */
11 public static void main(String[] args) {
12 String text = "";
13 long startTime = 0L;
14 long endTime = 0L;
15 StringBuffer buffer = new StringBuffer("");
16 StringBuilder builder = new StringBuilder("");
17
18 startTime = System.currentTimeMillis();
19 for(int i = 0;i<20000;i++){
20 buffer.append(String.valueOf(i));}
21 endTime = System.currentTimeMillis();
22 System.out.println("StringBuffer的执行时间:"+(endTime-startTime));
23
24 startTime = System.currentTimeMillis();
25 for(int i = 0;i<20000;i++){
26 builder.append(String.valueOf(i));}
27 endTime = System.currentTimeMillis();
28 System.out.println("StringBuilder的执行时间:"+(endTime-startTime));
29
30 startTime = System.currentTimeMillis();
31 for(int i = 0;i<20000;i++){
32 text = text + i;}
33 endTime = System.currentTimeMillis();
34 System.out.println("String的执行时间:"+(endTime-startTime));
35 }
36 /*
37 * java.lang.StringBuffer和StringBuilder:代表可变的字符序列,可以对字符串内容进行增删
38 * StringBuffer append(String s), StringBuffer append(int n) ,
39 StringBuffer append(Object o) , StringBuffer append(char n),
40 StringBuffer append(long n), StringBuffer append(boolean n),
41 StringBuffer insert(int index, String str)
42 public StringBuffer reverse() :反转此StringBuffer
43 StringBuffer delete(int startIndex, int endIndex)
44 public char charAt(int n )
45 public void setCharAt(int n ,char ch)
46 StringBuffer replace( int startIndex ,int endIndex, String str)
47 public int indexOf(String str)
48 public String substring(int start,int end)
49 public int length()
50 总结:添加:append() 删除:delete(int i,int j) 修改:setCharAt(int index,char ch) 查 charAt(int n);
51 插入:insert(int index,String str) 反转:reverse() 长度:length()
52 */
53 @Test
54 public void test(){
55 StringBuffer sb = new StringBuffer();
56 sb.append("a");
57 sb.append(1);
58 sb.insert(1,"T");
59 System.out.println(sb);
60 System.out.println(sb.reverse());
61 System.out.println(sb.delete(1,2));
62 System.out.println(sb.charAt(1));
63 sb.setCharAt(1,'s');//修改1处的字符
64 System.out.println(sb);
65 System.out.println(sb.append("wasd110120"));
66 System.out.println(sb.indexOf("wasd"));
67 System.out.println(sb.substring(2));
68 }
69 }
四:日期类
1 package TestString;
2
3 import org.junit.Test;
4
5 import java.text.ParseException;
6 import java.text.SimpleDateFormat;
7 import java.util.Calendar;
8 import java.util.Date;
9
10 /*
11 * 与时间相关的类:
12 * 1.System 类下的currentTimeMillis();
13 * 2.Date类:java.util.Date
14 * 如何创建其实例;其下的方法:toString()、getTime()
15 * (以及其子类java.sql.Date)
16 * 3.SimpleDateFormat类
17 * 4.Calendar类
18 */
19 public class TestDate {
20 @Test
21 public void test(){//测试Date类,java.util.Date不易于国际化
22 java.sql.Date date = new java.sql.Date(15342515326235L);//java.sql里面的Date是与数据库表里的date格式保持一致
23 System.out.println(date);
24 Date date1 = new Date();//创建一个Date实例
25 System.out.println(date1.toString());//Thu Nov 19 14:59:58 CST 2020
26 System.out.println(date1.getTime());//1605769198595
27 Date d2 = new Date(1399879144434L);
28 System.out.println(d2);//Mon May 12 15:19:04 CST 2014
29 }
30 /*
31 * java.text.SimpleDateFormat类易于国际化
32 * 格式化:日期--->文本 使用SimpleDateFormat的format()方法
33 * 解析:文本--->日期 使用SimpleDateFormat的parse()方法
34 */
35 @Test
36 public void test2() throws ParseException {
37 SimpleDateFormat simpleDateFormat = new SimpleDateFormat();//格式化处理
38 String format = simpleDateFormat.format(new Date());
39 System.out.println(format);//20-11-19 下午3:03
40 SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
41 String format1 = simpleDateFormat1.format(new Date());//按照指定的格式输出
42 System.out.println(format1);//20-11-19 15:07:51
43 //解析
44 Date date1 = simpleDateFormat.parse("20-11-19 下午3:07");//只能用对应格式进行解析,如果使用simpleDateFormat1就会报错。
45 System.out.println(date1);
46 }
47 /*
48 * “三天打渔两天晒网” 1990-01-01 XXXX-XX-XX 打渔?晒网?
49 */
50 //返回date1与date2之间的天数,date1早于date2
51 public int getDays(String date1,String date2) throws ParseException{
52 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
53 Date d1 = sdf.parse(date1);
54 Date d2 = sdf.parse(date2);
55 long milliTime = d2.getTime()-d1.getTime();
56 return (int)milliTime/1000/3600/24 + 1;
57
58 }
59
60 @Test
61 public void test3() throws ParseException{
62 String str1 = "1990-01-01";
63 String str2 = "1990-01-06";
64 int dates = getDays(str1,str2);
65
66 if(dates % 5 == 0 || dates % 5 == 4){
67 System.out.println("晒网");
68 }else{
69 System.out.println("打渔");
70 }
71 }
72 //日历:Calendar类 get()/add()/set()/Date getTime()/setTime(Date d)
73 @Test
74 public void test4()
75 {
76 Calendar c = Calendar.getInstance();
77 int day = c.get(Calendar.DAY_OF_MONTH);
78 System.out.println(day);
79 c.add(Calendar.DAY_OF_MONTH,-2);
80 int day1 = c.get(Calendar.DAY_OF_MONTH);
81 System.out.println(day1);
82 c.add(Calendar.DAY_OF_MONTH,+2);
83 int day2 = c.get(Calendar.DAY_OF_MONTH);
84 System.out.println(day2);
85 c.set(Calendar.DAY_OF_MONTH,23);
86 Date d = c.getTime();
87 System.out.println(d);
88 }
89 }
五:Math类
六:BigInteger,BigDecimal类
1 package TestString;
2
3 import org.junit.Test;
4
5 import java.math.BigDecimal;
6 import java.math.BigInteger;
7
8 public class TestBigDecimal {
9 @Test
10 public void testBigInteger(){
11 BigInteger bi = new BigInteger("123456848889874465");
12 System.out.println(bi);
13 BigDecimal bd = new BigDecimal("5646546");
14 System.out.println(bd);
15 BigDecimal bd1 = new BigDecimal("11");
16 System.out.println(bd.divide(bd1,BigDecimal.ROUND_HALF_UP));//向上取整
17 System.out.println(bd.divide(bd1,15,BigDecimal.ROUND_HALF_UP));//向上取整,保留15位小数
18 }
19 }
JDBC
package JDBC;
//这是工具类:
import java.sql.*;
public class JdbcUtils {
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_url = "jdbc:mysql://localhost:3306/student?characterEncoding=utf-8&serverTimezone=UTC";
static final String USER = "root";
static final String PASSWORD = "root";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName(JDBC_DRIVER);
Connection connection = DriverManager.getConnection(DB_url, USER, PASSWORD);
Statement statement = connection.createStatement();
String sql = "select * from student";
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){
String id = resultSet.getString("id");
String age = resultSet.getString("age");
String name = resultSet.getString("name");
String sex = resultSet.getString("sex");
System.out.println(id+age+name+sex);
}
resultSet.close();
statement.close();
connection.close();
}
}
作者:你的雷哥
本文版权归作者所有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。