java快速入手文档基础总结资料.docx
《java快速入手文档基础总结资料.docx》由会员分享,可在线阅读,更多相关《java快速入手文档基础总结资料.docx(24页珍藏版)》请在冰豆网上搜索。
java快速入手文档基础总结资料
1Eclipse相关
1.1常见错误
eclipse项目红色感叹号
应该是你的JDK路径不一致,重新设置下就好了
Addlibraryjresystemlibrary
1.2编辑器正则表达式替换
删除空行:
^\s*\n
删除
2Java基础
2.1数组
声明:
int[]s;
ints[];
定义:
S=newint[5];
1.动态初始化:
数组定义与为数组分配空间和赋值的操作分开进行;
2.静态初始化:
在定义数字的同时就为数组元素分配空间并赋值;
3.默认初始化:
数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化.
2.2文件输入输出流
Input读入output写出
FileOutputStreamoutputStream=newFileOutputStream(contextRealPath+"/"+fileName);
InputStreaminputStream=item.getInputStream();
inputStream.read();
outputStream.write();
3Java类集
collection:
父接口;
Set:
接口---一个实现类:
HashSet
List:
接口---三个实现类:
LinkedList,Vector,ArrayList
3.1List(Collection的一个子接口——允许重复且有序)
3.1.1Arraylist简单操作
Listmylist=newArrayList();//没有长度限制
/***************插入元素******************/
mylist.add("hello");
mylist.add(0,"MLDN");//在位置0插入元素
/***************删除元素******************/
mylist.remove(0);//两种删除方式
mylist.remove("world");//此处为string,若为匿名对象,可能无法删除。
/***************输出元素1******************/
for(inti=0;i{System.out.println(mylist.get(i));}或System.out.println(mylist);3.1.2Linklist简单操作LinkedListlink=newLinkedList();/***************添加数据***********************/link.add("A");//System.out.println(link);link.addFirst("FIRST");link.addLast("LAST");//System.out.println(link);System.out.println("链表头:"+link.getFirst());System.out.println("链表头:"+link.getLast());/***************读取数据***********************/for(inti=0;i{System.out.println(link.element());}3.1.3VectorandEnumerationVectorvec=newVector();vec.add("a");vec.add("b");vec.add("c");Enumerationenume=vec.elements();while(enume.hasMoreElements()){System.out.print(enume.nextElement()+"、");}HashMapMapmap=newHashtable();/**Hashtable和HashMap的区别:*HashMapJDK1.0时推出,同步,性能低,线程安全**/map.put("zhangsan",1);map.put("zhangsan",2);map.put("lisi",3);map.put("wangwu",4);Integervalue=map.get("zhangsan");//根据key取value/**************集合返回所有的key***************/Setset=map.keySet();/**************取所有value***************/Collectioncol=map.values();Iteratoritervalue=col.iterator();/**************取所有的键值对***********/Iteratorkeyiter=set.iterator();while(keyiter.hasNext()){Stringkey=keyiter.next();System.out.println(key+"-->"+map.get(key));}3.2Set不允许重复的子接口3.2.1HashSet(散列存放的子类)Setset=newHashSet();set.add("A");set.add("B");set.add("C");set.add("C");//可放入重复元素,但是不重复存储和显示System.out.println(set);3.2.2TreeSet(排序存放的子类)Setset=newTreeSet();//有序的集合set.add("B");set.add("A");set.add("C");System.out.println(set);3.3集合输出遍历的方式有如下四种,它们的使用率是不一样的:Iterator--95%ListIterator--1%Enumeration--4%foreach--0%3.3.1Iterator(迭代输出)ListallList=newArrayList();allList.add("a");allList.add("b");allList.add("c");Iteratoriter=allList.iterator();while(iter.hasNext()){Stringstr=iter.next();//取当前元素,指针下移。if("c".equals(str)){//iter.remove();//正确,但是很少使用allList.remove(str);//错误,不能直接用集合中的remove方法。}}3.3.2ListIterator(双向迭代输出)ListallList=newArrayList();allList.add("a");ListIteratoriter=allList.listIterator();System.out.println("从前向后输出:");while(iter.hasNext()){System.out.print(iter.next()+"、");}System.out.println("从后向前输出:");while(iter.hasPrevious()){System.out.print(iter.previous()+"、");}3.3.3Foreach(新的支持)1. List all = new ArrayList(); 2. all.add("hello"); 3. all.add("world"); 4. for (String str : all) { 5. System.out.println(str); 6. } 3.4Map接口3.4.1HashMap/**Map的输出:*1.Set>entrySet()获取Set集合*2.通过Set为Iterator进行初始化*3.通过Iterator取出每一个MapEntry*4.通过Map.Entry进行key与value的分离**/Mapmap=newHashMap();map.put("zhangsan",1);map.put("zhangsan",2);map.put("lisi",3);map.put("wangwu",4);Integera=map.get("wangwu");/*******遍历方法1********************/Set>set=map.entrySet();Iterator>iter=set.iterator();while(iter.hasNext()){Map.Entryme=iter.next();System.out.println(me.getKey()+"-->"+me.getValue());}/**********方法2************************/for(Map.Entryme:map.entrySet()){System.out.println(me.getKey()+"-->"+me.getValue());}/******keyset*******/Setss=map.keySet();Iteratorit=ss.iterator();while(it.hasNext()){Stringkey=it.next();System.out.println(key+"|-->"+map.get(key));}3.4.2TreeMap(有序的存放)/*treemap可以进行排序*/Mapmap=newTreeMap();map.put("zhangsan",1);map.put("zhangsan",2);map.put("lisi",3);map.put("wangwu",4);Setset=map.keySet();Iteratoriter=set.iterator();while(iter.hasNext()){Stringkey=iter.next();System.out.println(key+"-->"+map.get(key));}3.4.3Hashtable1. Map all = new Hashtable(); 2. all.put("BJ", "BeiJing"); 3. all.put("NJ", "NanJing"); 4. Set> set = all.entrySet(); 5. Iterator> iter = set.iterator(); 6. while (iter.hasNext()) { 7. Map.Entry me = iter.next(); 8. System.out.println(me.getKey() + " --> " + me.getValue()); 9. } 3.5Stack类1. Stack s = new Stack(); 2. s.push("A"); 3. s.push("B"); 4. s.push("C"); 5. System.out.println(s.pop()); 6. System.out.println(s.pop()); 7. System.out.println(s.pop()); 8. System.out.println(s.pop()); 3.6其他3.6.1collectionsListallList=newArrayList();Collections.addAll(allList,"e.hello","d.hello");Collections.sort(allList);3.6.2compareToclassPersonTestimplementsComparable{privateStringname;privateintage;publicPersonTest(Stringname,intage){this.name=name;this.age=age;}publicStringtoString(){return"姓名:"+this.name+",年龄:"+this.age;}@OverridepublicintcompareTo(PersonTesto){if(this.agereturn1;}elseif(this.age>o.age){return-1;}else{returnpareTo(o.name);}}}publicclassComparableTest{publicstaticvoidmain(String[]args){Setall=newTreeSet();PersonTesta=newPersonTest("张三",20);PersonTestb=newPersonTest("张三",30);PersonTestc=newPersonTest("张三",40);all.add(a);all.add(b);all.add(c);System.out.println(all);System.out.println(pareTo(b));}}4正则表达式4.1正则表达式语法正则表达式符号:句点符号(.):匹配所有字符,如t.n方括号([]):定义匹配集合,单字符匹配,如t[aeio]n或符号(|):或运算,如t(a|e|i|o|oo)n$:匹配行结束符。^匹配一行的开始。/转义符,用来将元字符当作普通的字符来进行匹配。^“^”符号称为“否”符号。常用的限定符代码/语法说明*重复零次或更多次+重复一次或更多次?重复零次或一次{n}重复n次{n,}重复n次或更多次{n,m}重复n到m次常用的元字符:代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束常用的反义代码代码/语法说明\W匹配任意不是字母,数字,下划线,汉字的字符\S匹配任意不是空白符的字符\D匹配任意非数字的字符\B匹配不是单词开头或结束的位置[^x]匹配除了x以外的任意字符[^aeiou]匹配除了aeiou这几个字母以外的任意字符4.2常用正则表达式1[正则表达式]文本框输入内容控制2整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$3只能输入数字:"^[0-9]*$"。4只能输入n位的数字:"^\d{n}$"。5只能输入至少n位的数字:"^\d{n,}$"。6只能输入m~n位的数字:。"^\d{m,n}$"7只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。8只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。9只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。10只能输入非零的正整数:"^\+?[1-9][0-9]*$"。11只能输入非零的负整数:"^\-[1-9][]0-9"*$。12只能输入长度为3的字符:"^.{3}$"。13只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。14只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。15只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。16只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。17只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。18验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。19验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。20只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"21验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。22验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。23验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。24验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。25验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。26验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。27匹配中文字符的正则表达式:[\u4e00-\u9fa5]28匹配双字节字符(包括汉字在内):[^\x00-\xff]29应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)30String.prototype.len=function(){returnthis.replace(/[^\x00-\xff]/g,"aa").length;}31匹配空行的正则表达式:\n[\s|]*\r32匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>33匹配首尾空格的正则表达式:(^\s*)|(\s*$)4.3详解Pattern类和Matcher类Patternp=Ppile("\\w+");p.pattern();//返回\w+4.3.1Pattern.split(CharSequenceinput)Patternp=Ppile("\\d+");String[]str=p.split("我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@");结果:str[0]="我的QQ是:"str[1]="我的电话是:"str[2]="我的邮箱是:aaa@"4.3.2Pattern.matches是一个静态方法,用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串.Java代码示例:Pattern.matches("\\d+","2223");//返回truePattern.matcher(CharSequenceinput)pattern=Ppile("b*g");Matchermatcher=pattern.matcher("bbg");System.out.println(matcher.matches());4.3.3Matcher.matches()/Matcher.lookingAt()/Matcher.find()matches()对整个字
{
System.out.println(mylist.get(i));
}
或System.out.println(mylist);
3.1.2Linklist简单操作
LinkedListlink=newLinkedList();
/***************添加数据***********************/
link.add("A");
//System.out.println(link);
link.addFirst("FIRST");
link.addLast("LAST");
System.out.println("链表头:
"+link.getFirst());
"+link.getLast());
/***************读取数据***********************/
for(inti=0;i{System.out.println(link.element());}3.1.3VectorandEnumerationVectorvec=newVector();vec.add("a");vec.add("b");vec.add("c");Enumerationenume=vec.elements();while(enume.hasMoreElements()){System.out.print(enume.nextElement()+"、");}HashMapMapmap=newHashtable();/**Hashtable和HashMap的区别:*HashMapJDK1.0时推出,同步,性能低,线程安全**/map.put("zhangsan",1);map.put("zhangsan",2);map.put("lisi",3);map.put("wangwu",4);Integervalue=map.get("zhangsan");//根据key取value/**************集合返回所有的key***************/Setset=map.keySet();/**************取所有value***************/Collectioncol=map.values();Iteratoritervalue=col.iterator();/**************取所有的键值对***********/Iteratorkeyiter=set.iterator();while(keyiter.hasNext()){Stringkey=keyiter.next();System.out.println(key+"-->"+map.get(key));}3.2Set不允许重复的子接口3.2.1HashSet(散列存放的子类)Setset=newHashSet();set.add("A");set.add("B");set.add("C");set.add("C");//可放入重复元素,但是不重复存储和显示System.out.println(set);3.2.2TreeSet(排序存放的子类)Setset=newTreeSet();//有序的集合set.add("B");set.add("A");set.add("C");System.out.println(set);3.3集合输出遍历的方式有如下四种,它们的使用率是不一样的:Iterator--95%ListIterator--1%Enumeration--4%foreach--0%3.3.1Iterator(迭代输出)ListallList=newArrayList();allList.add("a");allList.add("b");allList.add("c");Iteratoriter=allList.iterator();while(iter.hasNext()){Stringstr=iter.next();//取当前元素,指针下移。if("c".equals(str)){//iter.remove();//正确,但是很少使用allList.remove(str);//错误,不能直接用集合中的remove方法。}}3.3.2ListIterator(双向迭代输出)ListallList=newArrayList();allList.add("a");ListIteratoriter=allList.listIterator();System.out.println("从前向后输出:");while(iter.hasNext()){System.out.print(iter.next()+"、");}System.out.println("从后向前输出:");while(iter.hasPrevious()){System.out.print(iter.previous()+"、");}3.3.3Foreach(新的支持)1. List all = new ArrayList(); 2. all.add("hello"); 3. all.add("world"); 4. for (String str : all) { 5. System.out.println(str); 6. } 3.4Map接口3.4.1HashMap/**Map的输出:*1.Set>entrySet()获取Set集合*2.通过Set为Iterator进行初始化*3.通过Iterator取出每一个MapEntry*4.通过Map.Entry进行key与value的分离**/Mapmap=newHashMap();map.put("zhangsan",1);map.put("zhangsan",2);map.put("lisi",3);map.put("wangwu",4);Integera=map.get("wangwu");/*******遍历方法1********************/Set>set=map.entrySet();Iterator>iter=set.iterator();while(iter.hasNext()){Map.Entryme=iter.next();System.out.println(me.getKey()+"-->"+me.getValue());}/**********方法2************************/for(Map.Entryme:map.entrySet()){System.out.println(me.getKey()+"-->"+me.getValue());}/******keyset*******/Setss=map.keySet();Iteratorit=ss.iterator();while(it.hasNext()){Stringkey=it.next();System.out.println(key+"|-->"+map.get(key));}3.4.2TreeMap(有序的存放)/*treemap可以进行排序*/Mapmap=newTreeMap();map.put("zhangsan",1);map.put("zhangsan",2);map.put("lisi",3);map.put("wangwu",4);Setset=map.keySet();Iteratoriter=set.iterator();while(iter.hasNext()){Stringkey=iter.next();System.out.println(key+"-->"+map.get(key));}3.4.3Hashtable1. Map all = new Hashtable(); 2. all.put("BJ", "BeiJing"); 3. all.put("NJ", "NanJing"); 4. Set> set = all.entrySet(); 5. Iterator> iter = set.iterator(); 6. while (iter.hasNext()) { 7. Map.Entry me = iter.next(); 8. System.out.println(me.getKey() + " --> " + me.getValue()); 9. } 3.5Stack类1. Stack s = new Stack(); 2. s.push("A"); 3. s.push("B"); 4. s.push("C"); 5. System.out.println(s.pop()); 6. System.out.println(s.pop()); 7. System.out.println(s.pop()); 8. System.out.println(s.pop()); 3.6其他3.6.1collectionsListallList=newArrayList();Collections.addAll(allList,"e.hello","d.hello");Collections.sort(allList);3.6.2compareToclassPersonTestimplementsComparable{privateStringname;privateintage;publicPersonTest(Stringname,intage){this.name=name;this.age=age;}publicStringtoString(){return"姓名:"+this.name+",年龄:"+this.age;}@OverridepublicintcompareTo(PersonTesto){if(this.agereturn1;}elseif(this.age>o.age){return-1;}else{returnpareTo(o.name);}}}publicclassComparableTest{publicstaticvoidmain(String[]args){Setall=newTreeSet();PersonTesta=newPersonTest("张三",20);PersonTestb=newPersonTest("张三",30);PersonTestc=newPersonTest("张三",40);all.add(a);all.add(b);all.add(c);System.out.println(all);System.out.println(pareTo(b));}}4正则表达式4.1正则表达式语法正则表达式符号:句点符号(.):匹配所有字符,如t.n方括号([]):定义匹配集合,单字符匹配,如t[aeio]n或符号(|):或运算,如t(a|e|i|o|oo)n$:匹配行结束符。^匹配一行的开始。/转义符,用来将元字符当作普通的字符来进行匹配。^“^”符号称为“否”符号。常用的限定符代码/语法说明*重复零次或更多次+重复一次或更多次?重复零次或一次{n}重复n次{n,}重复n次或更多次{n,m}重复n到m次常用的元字符:代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束常用的反义代码代码/语法说明\W匹配任意不是字母,数字,下划线,汉字的字符\S匹配任意不是空白符的字符\D匹配任意非数字的字符\B匹配不是单词开头或结束的位置[^x]匹配除了x以外的任意字符[^aeiou]匹配除了aeiou这几个字母以外的任意字符4.2常用正则表达式1[正则表达式]文本框输入内容控制2整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$3只能输入数字:"^[0-9]*$"。4只能输入n位的数字:"^\d{n}$"。5只能输入至少n位的数字:"^\d{n,}$"。6只能输入m~n位的数字:。"^\d{m,n}$"7只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。8只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。9只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。10只能输入非零的正整数:"^\+?[1-9][0-9]*$"。11只能输入非零的负整数:"^\-[1-9][]0-9"*$。12只能输入长度为3的字符:"^.{3}$"。13只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。14只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。15只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。16只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。17只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。18验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。19验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。20只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"21验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。22验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。23验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。24验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。25验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。26验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。27匹配中文字符的正则表达式:[\u4e00-\u9fa5]28匹配双字节字符(包括汉字在内):[^\x00-\xff]29应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)30String.prototype.len=function(){returnthis.replace(/[^\x00-\xff]/g,"aa").length;}31匹配空行的正则表达式:\n[\s|]*\r32匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>33匹配首尾空格的正则表达式:(^\s*)|(\s*$)4.3详解Pattern类和Matcher类Patternp=Ppile("\\w+");p.pattern();//返回\w+4.3.1Pattern.split(CharSequenceinput)Patternp=Ppile("\\d+");String[]str=p.split("我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@");结果:str[0]="我的QQ是:"str[1]="我的电话是:"str[2]="我的邮箱是:aaa@"4.3.2Pattern.matches是一个静态方法,用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串.Java代码示例:Pattern.matches("\\d+","2223");//返回truePattern.matcher(CharSequenceinput)pattern=Ppile("b*g");Matchermatcher=pattern.matcher("bbg");System.out.println(matcher.matches());4.3.3Matcher.matches()/Matcher.lookingAt()/Matcher.find()matches()对整个字
System.out.println(link.element());
3.1.3VectorandEnumeration
Vectorvec=newVector();
vec.add("a");
vec.add("b");
vec.add("c");
Enumerationenume=vec.elements();
while(enume.hasMoreElements())
System.out.print(enume.nextElement()+"、");
HashMap
Mapmap=newHashtable();
/*
*Hashtable和HashMap的区别:
*HashMapJDK1.0时推出,同步,性能低,线程安全
**/
map.put("zhangsan",1);
map.put("zhangsan",2);
map.put("lisi",3);
map.put("wangwu",4);
Integervalue=map.get("zhangsan");//根据key取value
/**************集合返回所有的key***************/
Setset=map.keySet();
/**************取所有value***************/
Collectioncol=map.values();
Iteratoritervalue=col.iterator();
/**************取所有的键值对***********/
Iteratorkeyiter=set.iterator();
while(keyiter.hasNext())
Stringkey=keyiter.next();
System.out.println(key+"-->"+map.get(key));
3.2Set不允许重复的子接口
3.2.1HashSet(散列存放的子类)
Setset=newHashSet();
set.add("A");
set.add("B");
set.add("C");
set.add("C");//可放入重复元素,但是不重复存储和显示
System.out.println(set);
3.2.2TreeSet(排序存放的子类)
Setset=newTreeSet();
//有序的集合
3.3集合输出
遍历的方式有如下四种,它们的使用率是不一样的:
Iterator--95%
ListIterator--1%
Enumeration--4%
foreach--0%
3.3.1Iterator(迭代输出)
ListallList=newArrayList();
allList.add("a");
allList.add("b");
allList.add("c");
Iteratoriter=allList.iterator();
while(iter.hasNext())
Stringstr=iter.next();//取当前元素,指针下移。
if("c".equals(str))
//iter.remove();//正确,但是很少使用
allList.remove(str);//错误,不能直接用集合中的remove方法。
3.3.2ListIterator(双向迭代输出)
ListIteratoriter=allList.listIterator();
System.out.println("从前向后输出:
");
System.out.print(iter.next()+"、");
System.out.println("从后向前输出:
while(iter.hasPrevious()){
System.out.print(iter.previous()+"、");
3.3.3Foreach(新的支持)
1. List all = new ArrayList();
2. all.add("hello");
3. all.add("world");
4. for (String str :
all) {
5. System.out.println(str);
6. }
3.4Map接口
3.4.1HashMap
*Map的输出:
*1.Set>entrySet()获取Set集合
*2.通过Set为Iterator进行初始化
*3.通过Iterator取出每一个MapEntry
*4.通过Map.Entry进行key与value的分离
Mapmap=newHashMap();
Integera=map.get("wangwu");
/*******遍历方法1********************/
Set>set=map.entrySet();
Iterator>iter=set.iterator();
Map.Entryme=iter.next();
System.out.println(me.getKey()+"-->"+me.getValue());
/**********方法2************************/
for(Map.Entryme:
map.entrySet()){
/******keyset*******/
Setss=map.keySet();
Iteratorit=ss.iterator();
while(it.hasNext()){
Stringkey=it.next();
System.out.println(key+"|-->"+map.get(key));
3.4.2TreeMap(有序的存放)
/*treemap可以进行排序*/
Mapmap=newTreeMap();
Iteratoriter=set.iterator();
while(iter.hasNext()){
Stringkey=iter.next();
3.4.3Hashtable
1. Map all = new Hashtable();
2. all.put("BJ", "BeiJing");
3. all.put("NJ", "NanJing");
4. Set> set = all.entrySet();
5. Iterator> iter = set.iterator();
6. while (iter.hasNext()) {
7. Map.Entry me = iter.next();
8. System.out.println(me.getKey() + " --> " + me.getValue());
9. }
3.5Stack类
1. Stack s = new Stack();
2. s.push("A");
3. s.push("B");
4. s.push("C");
5. System.out.println(s.pop());
6. System.out.println(s.pop());
7. System.out.println(s.pop());
8. System.out.println(s.pop());
3.6其他
3.6.1collections
Collections.addAll(allList,"e.hello","d.hello");
Collections.sort(allList);
3.6.2compareTo
classPersonTestimplementsComparable{
privateStringname;
privateintage;
publicPersonTest(Stringname,intage){
this.name=name;
this.age=age;
publicStringtoString(){
return"姓名:
"+this.name+",年龄:
"+this.age;
@Override
publicintcompareTo(PersonTesto){
if(this.agereturn1;}elseif(this.age>o.age){return-1;}else{returnpareTo(o.name);}}}publicclassComparableTest{publicstaticvoidmain(String[]args){Setall=newTreeSet();PersonTesta=newPersonTest("张三",20);PersonTestb=newPersonTest("张三",30);PersonTestc=newPersonTest("张三",40);all.add(a);all.add(b);all.add(c);System.out.println(all);System.out.println(pareTo(b));}}4正则表达式4.1正则表达式语法正则表达式符号:句点符号(.):匹配所有字符,如t.n方括号([]):定义匹配集合,单字符匹配,如t[aeio]n或符号(|):或运算,如t(a|e|i|o|oo)n$:匹配行结束符。^匹配一行的开始。/转义符,用来将元字符当作普通的字符来进行匹配。^“^”符号称为“否”符号。常用的限定符代码/语法说明*重复零次或更多次+重复一次或更多次?重复零次或一次{n}重复n次{n,}重复n次或更多次{n,m}重复n到m次常用的元字符:代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束常用的反义代码代码/语法说明\W匹配任意不是字母,数字,下划线,汉字的字符\S匹配任意不是空白符的字符\D匹配任意非数字的字符\B匹配不是单词开头或结束的位置[^x]匹配除了x以外的任意字符[^aeiou]匹配除了aeiou这几个字母以外的任意字符4.2常用正则表达式1[正则表达式]文本框输入内容控制2整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$3只能输入数字:"^[0-9]*$"。4只能输入n位的数字:"^\d{n}$"。5只能输入至少n位的数字:"^\d{n,}$"。6只能输入m~n位的数字:。"^\d{m,n}$"7只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。8只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。9只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。10只能输入非零的正整数:"^\+?[1-9][0-9]*$"。11只能输入非零的负整数:"^\-[1-9][]0-9"*$。12只能输入长度为3的字符:"^.{3}$"。13只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。14只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。15只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。16只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。17只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。18验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。19验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。20只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"21验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。22验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。23验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。24验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。25验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。26验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。27匹配中文字符的正则表达式:[\u4e00-\u9fa5]28匹配双字节字符(包括汉字在内):[^\x00-\xff]29应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)30String.prototype.len=function(){returnthis.replace(/[^\x00-\xff]/g,"aa").length;}31匹配空行的正则表达式:\n[\s|]*\r32匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>33匹配首尾空格的正则表达式:(^\s*)|(\s*$)4.3详解Pattern类和Matcher类Patternp=Ppile("\\w+");p.pattern();//返回\w+4.3.1Pattern.split(CharSequenceinput)Patternp=Ppile("\\d+");String[]str=p.split("我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@");结果:str[0]="我的QQ是:"str[1]="我的电话是:"str[2]="我的邮箱是:aaa@"4.3.2Pattern.matches是一个静态方法,用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串.Java代码示例:Pattern.matches("\\d+","2223");//返回truePattern.matcher(CharSequenceinput)pattern=Ppile("b*g");Matchermatcher=pattern.matcher("bbg");System.out.println(matcher.matches());4.3.3Matcher.matches()/Matcher.lookingAt()/Matcher.find()matches()对整个字
return1;
}elseif(this.age>o.age){
return-1;
}else{
returnpareTo(o.name);
publicclassComparableTest{
publicstaticvoidmain(String[]args){
Setall=newTreeSet();
PersonTesta=newPersonTest("张三",20);
PersonTestb=newPersonTest("张三",30);
PersonTestc=newPersonTest("张三",40);
all.add(a);
all.add(b);
all.add(c);
System.out.println(all);
System.out.println(pareTo(b));
4正则表达式
4.1正则表达式语法
正则表达式符号:
句点符号(.):
匹配所有字符,如t.n
方括号([]):
定义匹配集合,单字符匹配,如t[aeio]n
或符号(|):
或运算,如t(a|e|i|o|oo)n
$:
匹配行结束符。
^匹配一行的开始。
/转义符,用来将元字符当作普通的字符来进行匹配。
^“^”符号称为“否”符号。
常用的限定符
代码/语法说明
*重复零次或更多次
+重复一次或更多次
?
重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
常用的元字符:
代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
常用的反义代码
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
4.2常用正则表达式
1[正则表达式]文本框输入内容控制
2整数或者小数:
^[0-9]+\.{0,1}[0-9]{0,2}$
3只能输入数字:
"^[0-9]*$"。
4只能输入n位的数字:
"^\d{n}$"。
5只能输入至少n位的数字:
"^\d{n,}$"。
6只能输入m~n位的数字:
。
"^\d{m,n}$"
7只能输入零和非零开头的数字:
"^(0|[1-9][0-9]*)$"。
8只能输入有两位小数的正实数:
"^[0-9]+(.[0-9]{2})?
$"。
9只能输入有1~3位小数的正实数:
"^[0-9]+(.[0-9]{1,3})?
10只能输入非零的正整数:
"^\+?
[1-9][0-9]*$"。
11只能输入非零的负整数:
"^\-[1-9][]0-9"*$。
12只能输入长度为3的字符:
"^.{3}$"。
13只能输入由26个英文字母组成的字符串:
"^[A-Za-z]+$"。
14只能输入由26个大写英文字母组成的字符串:
"^[A-Z]+$"。
15只能输入由26个小写英文字母组成的字符串:
"^[a-z]+$"。
16只能输入由数字和26个英文字母组成的字符串:
"^[A-Za-z0-9]+$"。
17只能输入由数字、26个英文字母或者下划线组成的字符串:
"^\w+$"。
18验证用户密码:
"^[a-zA-Z]\w{5,17}$"正确格式为:
以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
19验证是否含有^%&',;=?
$\"等字符:
"[^%&',;=?
$\x22]+"。
20只能输入汉字:
"^[\u4e00-\u9fa5]{0,}$"
21验证Email地址:
"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
22验证InternetURL:
"^http:
//([\w-]+\.)+[\w-]+(/[\w-./?
%&=]*)?
23验证电话号码:
"^(\(\d{3,4}-)|\d{3.4}-)?
\d{7,8}$"正确格式为:
"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
24验证身份证号(15位或18位数字):
"^\d{15}|\d{18}$"。
25验证一年的12个月:
"^(0?
[1-9]|1[0-2])$"正确格式为:
"01"~"09"和"1"~"12"。
26验证一个月的31天:
"^((0?
[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。
27匹配中文字符的正则表达式:
[\u4e00-\u9fa5]
28匹配双字节字符(包括汉字在内):
[^\x00-\xff]
29应用:
计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
30String.prototype.len=function(){returnthis.replace(/[^\x00-\xff]/g,"aa").length;}
31匹配空行的正则表达式:
\n[\s|]*\r
32匹配html标签的正则表达式:
<(.*)>(.*)<\/(.*)>|<(.*)\/>
33匹配首尾空格的正则表达式:
(^\s*)|(\s*$)
4.3详解Pattern类和Matcher类
Patternp=Ppile("\\w+");
p.pattern();//返回\w+
4.3.1Pattern.split(CharSequenceinput)
Patternp=Ppile("\\d+");
String[]str=p.split("我的QQ是:
456456我的电话是:
0532214我的邮箱是:
aaa@");
结果:
str[0]="我的QQ是:
"str[1]="我的电话是:
"str[2]="我的邮箱是:
aaa@"
4.3.2Pattern.matches
是一个静态方法,用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串.
Java代码示例:
Pattern.matches("\\d+","2223");//返回true
Pattern.matcher(CharSequenceinput)
pattern=Ppile("b*g");
Matchermatcher=pattern.matcher("bbg");
System.out.println(matcher.matches());
4.3.3Matcher.matches()/Matcher.lookingAt()/Matcher.find()
matches()对整个字
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1