Java学习十八
今天进行了两部分的内容,一是数据库DDL中操作表的部分,二是进行了Java的字符串实例练习。
一、DDL学习
1、操作表
(1)查询: show tables;查询表的名称; desc 表名; 查询表的结构。
(2)创建表:create table 表名( 列名1 数据类型1,
列名n 数据类型n); 注:最后一行没有“,”。
复制表:create table 新表名 like 原表名;
数据库的数据类型:①int :整型 age int
②double:小数类型 score double(5,2)数字位数为5,保留两位小数
③date:日期 yyyy-MM-dd 年月日
④datetime:日期 yyyy-MM-dd HH:mm;ss 年月日 时分秒
⑤timestamp:时间错类型 yyyy-MM-dd HH:mm:ss 不给这个字段赋值或赋值为null,默认使用系统时间
⑥varchar:字符串 name varchar(Maxsize)
(3)删除
drop table 表名;/drop table if exists 表名;
(4)修改
①改表名 alter table 表名 rename to 新表名;
②改字符集 alter table 表名 character set 字符集名;
③添加一列 alter table 表名 add 列名 数据类型;
④修改列名称、数据类型 alter table 表名 change 列名 新列名 数据类型;
alter table 表名 modify 列名 数据类型;
⑤删除列 alter table 表名 drop 列名;
二、Java字符串实例练习
其中的大部分东西我都直接写在了代码中,下面是源码。
1、
1 package Java字符串; 2 //通过字符串函数 strOrig.lastIndexOf(Stringname) 来查找子字符串 Stringname 在 strOrig 出现的位置 3 public class SearchlastString { 4 public static void main(String[] args) { 5 String str="Hello world,hello Runoob"; 6 int lastindex=str.lastIndexOf("Runoob");//调用方法 7 if(lastindex==-1){ 8 System.out.println("没有找到字符串Runoob"); 9 }else{ 10 System.out.println("Runoob最后出现的位置"+lastindex); 11 } 12 } 13 }
2、
1 package Java字符串; 2 /* 3 字符串性能比较测试 4 通过两种方式创建字符串,并测试其性能 5 */ 6 public class StringCompare { 7 public static void main(String[] args) { 8 //String关键字创建字符串 9 long start_time=System.currentTimeMillis(); 10 for(int i=0;i<50000;i++){ 11 String s1="hello"; 12 String s2="hello"; 13 } 14 long end_time=System.currentTimeMillis(); 15 System.out.println("通过关键字创建字符串时间:"+(end_time-start_time)+"毫秒"); 16 //String 第项创建字符串 17 long start_time1=System.currentTimeMillis(); 18 for(int i=0;i<50000;i++){ 19 String s3=new String("hello"); 20 String s4=new String("hello"); 21 } 22 long end_time1=System.currentTimeMillis(); 23 System.out.println("使用对象创建字符串时间:"+(end_time1-start_time1)+"毫秒"); 24 } 25 /* 26 currentTimeMillis()获取系统时间,以毫秒为单位 27 */ 28 }
3、
1 package Java字符串; 2 //以下实例中我们通过字符串函数 compareTo (string) ,compareToIgnoreCase(String) 及 compareTo(object string) 来比较两个字符串,并返回字符串中第一个字母ASCII的差值。 3 public class StringCompareEmp { 4 public static void main(String[] args) { 5 String str="Hello world"; 6 String str1="hello world"; 7 Object obj=str; 8 System.out.println(str.compareTo(str1)); 9 System.out.println(str.compareToIgnoreCase(str1));//忽略大小写 10 System.out.println(str.compareTo(obj.toString())); 11 } 12 }
4、
1 package Java字符串; 2 //通过字符串函数 substring() 函数来删除字符串中的一个字符,我们将功能封装在 removeCharAt 函数中 3 public class Stringdelete { 4 public static void main(String[] args) { 5 String str="Tomorrow is cool."; 6 System.out.println(removeCharAt(str,5)); 7 } 8 //方法 9 public static String removeCharAt(String s,int pos){ 10 return s.substring(0,pos)+s.substring(pos+1); 11 } 12 //public String substring(int beginIndex),截取字符串,从索引开始至字符串结束 13 //public String substring(int beginIndex, int endIndex),这个方法截取的字符串从beginIndex开始,到字符串索引的endIndex - 1结束 14 }
5、
1 package Java字符串; 2 3 import java.util.StringTokenizer; 4 5 //Java 中我们可以使用 StringTokennizer 设置不同分隔符来分隔字符串,默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r) 6 public class StringDivision { 7 public static void main(String[] args) { 8 String str = "This is String , split by StringTokenizer, created by runoob"; 9 StringTokenizer st=new StringTokenizer(str); 10 System.out.println("----- 通过空格分隔 ------"); 11 while (st.hasMoreElements()) { 12 System.out.println(st.nextElement()); 13 } 14 15 System.out.println("----- 通过逗号分隔 ------"); 16 StringTokenizer st2 = new StringTokenizer(str, ","); 17 18 while (st2.hasMoreElements()) { 19 System.out.println(st2.nextElement()); 20 } 21 } 22 /* 23 StringTokenizer(String str, String delim) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符 24 boolean hasMoreElements():判断枚举 (Enumeration) 对象中是否还有数据。 25 Object nextElement():返回枚举 (Enumeration) 对象的下一个元素 26 */ 27 }
6、
1 package Java字符串; 2 /* 3 字符串优化 4 通过 String.intern() 方法来优化字符串 5 */ 6 public class StringOptimization { 7 public static void main(String[] args) { 8 String var[]=new String[50000]; 9 for(int i=0;i<50000;i++){ 10 var[i]="s"+i; 11 } 12 long start_time=System.currentTimeMillis(); 13 for(int i=0;i<50000;i++){ 14 var[i]="hello"; 15 } 16 long end_time=System.currentTimeMillis(); 17 System.out.println("直接使用字符串:"+(end_time-start_time)+"毫秒"); 18 long start_time1=System.currentTimeMillis(); 19 for(int i=0;i<50000;i++){ 20 var[i]=new String("hello"); 21 } 22 long end_time1=System.currentTimeMillis(); 23 System.out.println("使用new关键字:"+(end_time1-start_time1)+"毫秒"); 24 long start_time2=System.currentTimeMillis(); 25 for(int i=0;i<50000;i++){ 26 var[i]=new String("hello"); 27 var[i]=var[i].intern(); 28 } 29 long end_time2=System.currentTimeMillis(); 30 System.out.println("使用intern方法:"+(end_time2-start_time2)+"毫秒"); 31 } 32 33 //intern()返回字符串规范化的表现形式 34 }
7、
1 package Java字符串; 2 /* 3 测试两个字符串区域是否相等 4 使用了 regionMatches() 方法测试两个字符串区域是否相等 5 */ 6 public class StringRegion { 7 public static void main(String[] args) { 8 String str1="Welcome to Microsoft"; 9 String str2="I work with microsoft"; 10 boolean match1=str1.regionMatches(11,str2,12,9); 11 boolean match2=str1.regionMatches(true,11,str2,12,9); 12 System.out.println("区分大小写返回值:"+match1); 13 System.out.println("不区分大小写返回值:"+match2); 14 } 15 /* 16 first_str.regionMatches(11, second_str, 12, 9) 表示将 first_str 字符串从第11个字符"M"开始和 second_str 字符串的第12个字符"M"开始逐个比较,共比较 9 对字符,由于字符串区分大小写,所以结果为false。 17 18 如果设置第一个参数为 true ,则表示忽略大小写区别,所以返回 true。 19 */ 20 }
8、
1 package Java字符串; 2 3 public class StringReplace { 4 public static void main(String[] args) { 5 String str="hello world"; 6 System.out.println(str.replace('h','c')); 7 System.out.println(str.replaceFirst("he","fe")); 8 System.out.println(str.replaceAll("ld","or")); 9 } 10 /* 11 replace(oldchar,newchar);以新换旧 12 replaceFirst(regex,replacement);替换掉第一次出现的 13 replaceAll(regex,replacement);全部替换 14 */ 15 }
9、
1 package Java字符串; 2 //反转函数reverse() 3 public class StringReverse { 4 public static void main(String[] args) { 5 String str="Tomorrow"; 6 String reverse=new StringBuffer(str).reverse().toString(); 7 System.out.println("反转前:"+str); 8 System.out.println("反转后:"+reverse); 9 } 10 /* 11 StringBuffer(str),相当于一个容器 12 reverse(),将字符串反转 13 */ 14 }
10、
1 package Java字符串; 2 //使用了 String 类的 indexOf() 方法在字符串中查找子字符串出现的位置,如果存在返回字符串出现的位置(第一位为0),如果不存在返回 -1: 3 public class StringSearch { 4 public static void main(String[] args) { 5 String str="yesterday today tomorrow"; 6 int index=str.indexOf("today"); 7 if(index==-1){ 8 System.out.println("没有找到字符串today"); 9 }else{ 10 System.out.println("字符串today位置"+index); 11 } 12 } 13 /* 14 1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。 15 2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 16 3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。 17 4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。 18 19 * */ 20 }
11、
1 package Java字符串; 2 //使用了 split(string) 方法通过指定分隔符将字符串分割为数组 3 public class StringSpilt { 4 public static void main(String[] args) { 5 String str="yersterday-today-tomorrow"; 6 String[] temp;//定义数组 7 String delimeter="-";//指定分割字符 8 temp=str.split(delimeter); 9 //普通for循环 10 for(int i=0;i< temp.length;i++){ 11 System.out.println(temp[i]); 12 } 13 System.out.println("------java for each循环输出的方法-----"); 14 String str1="yersterday.today.tomorrow"; 15 String[] m; 16 String delimeter1="\\.";//定义分割字符,“。”需要转义 17 m=str1.split(delimeter1); 18 //增强for 19 for(String x:m){ 20 System.out.println(x); 21 } 22 } 23 /* 24 . 、 $、 | 和 * 等转义字符,必须得加 \\。 25 */ 26 }
12、
1 package Java字符串; 2 //使用了 String toUpperCase() 方法将字符串从小写转为大写 3 public class StringToUpper { 4 public static void main(String[] args) { 5 String str="string runoob"; 6 String s=str.toUpperCase(); 7 System.out.println("原始字符串:"+str); 8 System.out.println("大写字符串:"+s); 9 } 10 /* 11 toUpperCase()方法将字符串转换为大写字母。 12 13 toLowerCase()方法将字符串转换为小写字母。 14 */ 15 }