1.StringBuffer 用法代码举例:
class DateTime{// 以后直接通过此类就可以取得日期时间
private Calendar calendar = null ;// 声明一个Calendar对象,取得时间
public DateTime(){// 构造方法中直接实例化对象
this.calendar = new GregorianCalendar() ;
}
public String getDate(){// 得到的是一个日期:格式为:yyyy-MM-dd HH:mm:ss.SSS
// 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
StringBuffer buf = new StringBuffer() ;
buf.append(calendar.get(Calendar.YEAR)).append("-") ;// 增加年
buf.append(this.addZero(calendar.get(Calendar.MONTH)+1,2)).append("-") ;// 增加月
buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH),2)).append(" ") ;// 取得日
buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY),2)).append(":") ;// 取得时
buf.append(this.addZero(calendar.get(Calendar.MINUTE),2)).append(":") ;
buf.append(this.addZero(calendar.get(Calendar.SECOND),2)).append(".") ;
buf.append(this.addZero(calendar.get(Calendar.MILLISECOND),3)) ;
return buf.toString() ;
}
public String getDateComplete(){// 得到的是一个日期:格式为:yyyy年MM月dd日 HH时mm分ss秒SSS毫秒
// 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
StringBuffer buf = new StringBuffer() ;
buf.append(calendar.get(Calendar.YEAR)).append("年") ;// 增加年
buf.append(this.addZero(calendar.get(Calendar.MONTH)+1,2)).append("月") ;// 增加月
buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH),2)).append("日") ;// 取得日
buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY),2)).append("时") ;// 取得时
buf.append(this.addZero(calendar.get(Calendar.MINUTE),2)).append("分") ;// 取得分
buf.append(this.addZero(calendar.get(Calendar.SECOND),2)).append("秒") ;// 取得秒
buf.append(this.addZero(calendar.get(Calendar.MILLISECOND),3)).append("毫秒") ; // 取得毫秒
return buf.toString() ;
}
public String getTimeStamp(){// 得到的是一个时间戳
// 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
StringBuffer buf = new StringBuffer() ;
buf.append(calendar.get(Calendar.YEAR)) ;// 增加年
buf.append(this.addZero(calendar.get(Calendar.MONTH)+1,2)) ;// 增加月
buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH),2)) ;// 取得日
buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY),2)) ;// 取得时
buf.append(this.addZero(calendar.get(Calendar.MINUTE),2)) ;// 取得分
buf.append(this.addZero(calendar.get(Calendar.SECOND),2));// 取得秒
buf.append(this.addZero(calendar.get(Calendar.MILLISECOND),3)) ; // 取得毫秒
return buf.toString() ;
}
// 考虑到日期中存在前导0,所以在此处加上补零的方法
private String addZero(int num,int len){
StringBuffer s = new StringBuffer() ;
s.append(num) ;
while(s.length()<len){// 如果长度不足,则继续补0
s.insert(0,"0") ;// 在第一个位置处补0
}
return s.toString() ;
}
};
public class XiTi {
public static void main(String args[]){
DateTime dt = new DateTime() ;
System.out.println("系统日期:"+dt.getDate()) ;
System.out.println("中文日期:"+dt.getDateComplete()) ;
System.out.println("时间戳:"+dt.getTimeStamp()) ;
}
}
二、Scanner类:
/*验证汽车牌照
现在假设汽车牌照的组成AB-123456前两位必须是字母后面必须是6位的数字。*/
public class Bus {
public static void main(String args[]){
Scanner in=new Scanner (System.in);
System.out.println("请输入要查的汽车牌照:");
String input=in.next();
Pattern p=Pattern.compile("^[A-Z]{2}-[0-9]{6}$");
Matcher m=p.matcher(input);
boolean flag=m.matches();
if(flag==true){
System.out.println("牌照合格");
} else{
System.out.println("非法牌照");
}
}
}
三.Random类代码例子:
public class Main4teacher {
public static void main(String[] args) {
int[] i = createRandom();
Arrays.sort(i);
System.out.println(Arrays.toString(i));
}
public static int[] createRandom(){
int[] t = new int[29];
for(int i = 0;i<29;i++){
t[i] = (int)(Math.random()*30+1);
int n = i;
while(n>0){
n--;
if(t[i] == t[n]){
i--;
break;
}
}
}
return t;
}
}
-------------------------------------
public class Ran {
/**
* 写一个彩票程序 30选7 随机(1~30中间)生成7个随机数,注意不能重复然后输入7个数,对比7个数是否与随机数有相同的,如果有显示“中了几个号”
* 如果中了7个号,显示一等奖 如果中了6个号,显示二等奖 如果中了5个号,显示三等奖.
* 注意,随机数不能重复 ,输入的随机数也不能相同。
*/
static Scanner in = new Scanner(System.in);
static int a1, count=0;
public static void main(String[] args) {
int[] b = new int[7];
for (int i = 0; i < 7; i++) {
int rom = (int) (Math.random() * 29 + 1);
b[i] = rom;
}
System.out.println(Arrays.toString(b));
for (int i = 0; i < 7; i++) {
System.out.println("请输入采票数【1-30】之前的数:");
a1 = in.nextInt();
if(a1==b[i]){
count++;
}
}
if(count==7){
System.out.println("中了一等奖");
}else if(count==6){
System.out.println("中了二等奖");
}else if(count==5){
System.out.println("中了三等奖");
}else {
System.out.println("没有中奖,谢谢参与!");
}
}
}
四.SimpleDateFormat类例子:
public class Main {
/**
* 1.计算某年、某月、某日和当前时间的天数间隔。要求年、月、日通过 main 方法的参数传递到程序中。
程序输出结果:
请输入时间(注意:时间格式为2014-08-07):
2013-7-9
还要84天,才到你输入的时间
请输入时间(注意:时间格式为2014-08-07):
2010-7-5
你输入的时间距离现在时间已过1016天
*
*/
public static void main(String[] args) throws ParseException {
Scanner input=new Scanner(System.in);
System.out.println("请输入时间:(注意:时间格式为2014-08-07)");
String time=input.next();//输入时间,字符串型。
//String str="2015-04-15";
//String str1="2008-08-08";
String format ="yyyy-MM-dd";
SimpleDateFormat format1=new SimpleDateFormat(format);
Date date=null;//声明时间
date=format1.parse(time);//把输入的字符串时间串转成给定格式 的时间形式。
long time2=date.getTime();
System.out.println("前台输入的时间 :毫秒值"+time2);
//当前时间 的毫秒值。
Date nowtime=new Date();
long time1=nowtime.getTime();
System.out.println("当前时间 的毫秒值:"+time1);
//两个毫秒值的差:
long timecha=time1-time2;//当前毫秒值与输入时间的毫秒值的差。
long daycha=timecha/(3600*1000*24);//一天24小时,一小时60分,1分60秒,一小时是3600秒,一秒是1000毫秒。一天是3600*24*1000秒
if(daycha>=0){
System.out.println("已过"+daycha+"天");
}else{
System.out.println("离现在差"+Math.abs(daycha)+"天");
}
}
}
五、正则表达式
public class Title9 {
/**
* 用正则表达式验证输入的字符串是Email地址、电话号码或者是身份证号(15位或18位数字)。
* 若是Email地址就在控制台打印“此字符串是Email地址”;若是电话号码就在控制台打印“此字符串是电话号码”;
* 若是身份证号就在控制台打印“此字符串是身份证号”;
* 否则,输出“此字符串既不是Email地址,也不是电话号码,更不是身份证号”
*/
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入Email地址、电话号码或者是身份证号(15位或18位数字)");
String str=in.next();
Pattern email=Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.])*\\.\\w+([-.]\\w+)*$");
Pattern tel=Pattern.compile("[1][1-9][0-9]*{11}");
Pattern cad=Pattern.compile("[0-9]{18}");
boolean a=email.matcher(str).matches();
boolean b=tel.matcher(str).matches();
boolean c=cad.matcher(str).matches();
if(a==true){
System.out.println("此字符串是Email地址");
}else if(b==true){
System.out.println("此字符串是电话号码");
}else if(c==true){
System.out.println("此字符串是身份证号");
}else{
System.out.println("此字符串既不是Email地址,也不是电话号码,更不是身份证号");
}
}
}
六、ArrayList 代码例子:
import java.util.ArrayList;
public class ArrayListDemo1 {
/**
* @如何使用ArrayList 是数组的顺序存储结构
*/
public static void main(String[] args) {
ArrayList<Integer> List=new ArrayList<Integer>();
for(int i=0;i<10;i++){
List.add(i);
}
List.remove(6);
System.out.println(List.get(2));
for(int i=0;i<3;i++)
List.add(i);
}
}
七、
public class ArrayListDemo2 {
/**
* @param args
*/
public static void main(String[] args) {
List<String> allList=null;
Collection<String> allCollection=null;
allList=new ArrayList<String>();
allCollection =new ArrayList<String>();
allList.add("hello");
allList.add(0,"world");//此接口中的方法,可以选择在任意位置填 加
allList.add(2,"@");
System.out.println(allList);//[world, hello, @]
allCollection.add("翡翠教育");
allCollection.add("安桌易");//只能是顺序往后填 加 数据结构是队列式的
System.out.println(allCollection);//[翡翠教育, 安桌易]
allList.addAll(allCollection);
System.out.println(allList);//[world, hello, @, 翡翠教育, 安桌易]
allList.addAll(0,allCollection);
System.out.println(allList);//[翡翠教育, 安桌易, world, hello, @, 翡翠教育, 安桌易]
}
}
八 LinkedList代码例子:
import java.util.LinkedList;
public class LinkListDemo1 {
/**LinkList是一种双向的链式结构
* @param args
*/
public static void main(String[] args) {
LinkedList<String> n=new LinkedList<String>();
n.add("a");
n.add("b");
n.add("c");
System.out.println(n);//[a, b, c]
n.addFirst("@");
System.out.println(n);//在链表的头部插入内容[@, a, b, c]
n.addLast("rare");
System.out.println(n);//在链表的尾部插入内容[@, a, b, c, rare]
}
}
九.ListIterator输出
public class ListIteratorDemo {
/**
* @param args 双向输出,通过LIST接口实例化,只能输出LIST 接口的内容 。
*/
public static void main(String[] args) {
List <String> all=new ArrayList<String>();//实例化list接口
all.add("hello");
all.add("-");
all.add("world");
ListIterator<String> iter=all.listIterator();// 实例化listIterator接口
System.out.println("从前向后输出");
while(iter.hasNext()){//后一个元素有值就输出
String str=iter.next();
System.out.print(str+",");
}
System.out.println();
System.out.println("从 后向前输出");
while (iter.hasPrevious()){//前一个元素有值就输出
String str=iter.previous();//取出值
System.out.print(str+",");
}
/*从前向后输出
hello,-,world,
从 后向前输出
world,-,hello*/
十、map类
public class MapJieKouShuChu {
/**
* Map接口输出
*/
public static void main(String[] args) {
Map<String,String> map=new HashMap<String,String>();
map.put("翡翠教育", "www.abc.com");
map.put("安桌易", "www.123.com");
Set<Map.Entry<String ,String>> allset=map.entrySet();//*******************
Iterator<Map.Entry<String,String>> iter=allset.iterator();
while(iter.hasNext()){
Map.Entry<String, String> me=iter.next();
System.out.println(me.getKey()+"-------"+me.getValue());
}
/*
安桌易-------www.123.com
翡翠教育-------www.abc.com
*/
Stack<String> s=new Stack<String>();
s.push("a");
s.push("b");
s.push("c");
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());//c,b,a 出栈,先进后出
}
}
十一、set类
import java.util.HashSet;
import java.util.Set;
public class SetDemo1 {
/**
* @set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素,队列式,单向输出。
*/
public static void main(String[] args) {
//hashset是set接口的一个子类,不重复,无顺序。
Set<String> a=new HashSet<String>();
a.add("a");
a.add("b");
a.add("c");
a.add("c");
a.add("d");
System.out.println(a);//[d, b, c, a]????????????怎么不是c,b,a的顺序呢
a.add("e");
System.out.println(a);//[d, e, b, c, a]
a.remove("a");
System.out.println(a);//移除a对象后[d, e, b, c]
}
}
十二、TreeSet<String>()代码例子:
import java.util.SortedSet;
import java.util.TreeSet;
public class SortedSetDemo1 {
/**
* @param args
*/
public static void main(String[] args) {
SortedSet<String> a=new TreeSet<String>();
a.add("E");
a.add("B");
a.add("C");
a.add("C");//C是重复元素,不能加入
a.add("C");//C是重复元素,不能加入
a.add("D");
a.add("A");
System.out.println(a);// 加入后的是排序好的[A, B, C, D, E]
System.out.println(a.first());//输出第一个元素A
System.out.println(a.last());//E 返回最后一个元素。
System.out.println(a.headSet("C"));//[A, B] 反回从开始到指定元素的集合,不包括指定元素。
System.out.println(a.tailSet("C"));//[C, D, E] 从指定元素到最后。
System.out.println(a.subSet("B", "D"));//[B, C]
}
}
十三、TreeMap<String,String>()用法
public class SortMapDemo {
/**
* SortMap接口是排序接口,只要是实现了此接口的子类,都属于排序的子类。
*/
public static void main(String[] args) {
SortedMap<String,String> m=new TreeMap<String,String>();
m.put("D,翡翠教育", "www.feicui.com");
m.put("C,安桌易", "www.an.com");
m.put("B,桌思", "www.zhuosi.com");
m.put("A,北京", "www.beijing.com");
System.out.println(m.firstKey());//第一个元素的内容的KEY
System.out.println(m.get(m.firstKey()));//第一个元素的key对应的值。
System.out.println("最后一个元素的KEY----->"+m.lastKey());
System.out.println(m.get(m.lastKey()));
System.out.println("返回小于指定范围的集合");
SortedMap<String, String> map = null;
for(Map.Entry<String, String> me: map.headMap("C,安桌易").entrySet()){
System.out.println(me.getKey());
}
}
}
十四、Vector<String>() 用法
public class VectorDemo {
/**是List 的子类
* @param args
*/
public static void main(String[] args) {
List<String> a=null;
a=new Vector<String>();
a.add("hello");
a.add(0,"world");
a.add("翡翠教育");
a.add("安桌易");
for (int i=0;i<a.size();i++){
System.out.println(a.get(i)+",");
}
}
}