在编程中,经常要用到创建多级目录,下面通过java来实现:
import java.io.*;
import java.util.*;
public class CreateFolders{
public static void main(String[] args) {
String path="c:/aaa/bbb/ccc";
StringTokenizer st=new StringTokenizer(path,"/");
String path1=st.nextToken()+"/";
String path2 =path1;
while(st.hasMoreTokens())
{
path1=st.nextToken()+"/";
path2+=path1;
File inbox = new File(path2);
if(!inbox.exists())
inbox.mkdir();
}
}
}
而用的最多的莫过于根据日期来创建目录进行文章的分类,如20090915用它来在E盘下创建一个E:/2009/09/17的目录而20090917又是一个字符串,须将它转化为:2009/09/17这种格式才好创建目录,下面是我实现的方法:
import java.util.*;
import java.text.*;
import java.io.*;
public class Createdirs{
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String dateString = "20090917";
try {
Date date = df.parse(dateString);
String path="E:/"+new SimpleDateFormat("yyyy/MM/dd").format(date);
//System.out.println(DateFormat.getDateInstance().format(date));
StringTokenizer st=new StringTokenizer(path,"/");
String path1=st.nextToken()+"/";
String path2 =path1;
while(st.hasMoreTokens())
{
path1=st.nextToken()+"/";
path2+=path1;
File inbox = new File(path2);
if(!inbox.exists())
inbox.mkdir();
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
有时候,我们获取到的日期类型可能为一字符串,如20090915;输出的时候,我们想转化为: 2009年09月15日 这种日期格式,那么我们怎么来将字符串转换为日期格式,下面是转换的代码:
import java.util.*;
import java.text.*;
import java.io.*;
class StrToDate
{
public static void main(String[] args)
{
String dateString = "20090915";
try {
Date date=new SimpleDateFormat("yyyyMMdd").parse(dateString);
//下面将字符串转换为日期格式后显示的格式是2009-09-15
System.out.println(DateFormat.getDateInstance().format(date));
//如果想换一种别的格式,可以用下面的办法,得到任何的日期格式都可以
//输出的结果为2009/09/15
System.out.println(new SimpleDateFormat("yyyy/MM/dd").format(date));
//SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
//输出的结果为2009年09月15日
System.out.println(new SimpleDateFormat("yyyy年MM月dd日").format(date));
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
通过上例代码,就可以转换成我们想要表示的日期格式了。
在用Eclipse做开发的时候,用到了svn版本控制器,这天当我打开Eclipse的时候,发现项目里面的所有文件前的版本号以及状态图标都不显示了,这是怎么回事,关掉Eclipse重新启动了一遍,还是不凑效。
可以确认的是当进行文件的更新提交的时候都可以正常进行,但就是不显示文件的版本号及状态图标,经过摸索 ,解决方法如下:
如果没有汉化是英文版的话,在菜单栏中:windows ->preferences->General->Appearance->Lable Decorations 勾选其中的 SVN 项,最后应用确认之后,文件的版本号及状态图标应该就显示出来了.
翻译成中文,就是在菜单栏中:窗口 ->首选项->常规->外观->标签装饰 勾选其中的 SVN 项,最后应用确认之后,文件的版本号及状态图标应该就显示出来了.
从同事那得知他面试一个题目,题目为java中怎么处理比long型还大的整数?
真的没点头绪,看了网上的一些解答,都没有给出实际的解答,网上很多的表示用数组来处理这个比long型还大的整数,到底怎么来实现运算,我也不知道,呵呵,曾今看过一篇文章,银行计算金额的时候,用的是bigdecimal类型,这种类型没有位数限制,是不是我们也可以利用这个来处理比long型还大的整数,答案是可以的,下面是计算方法:
//使用BigDecimal进行加、减、乘、除
void TestBigDecimal()
{
//别忘了导入java.math.BigDecimal
BigDecimal a=new BigDecimal(new String("123453243455535634535252345234677576252241234123523453664563634"));
BigDecimal b=new BigDecimal(new String("123453243455535634535252345234677576252241234123523453664563634"));
String c=a.add(b).toString();//加
String d=a.subtract(b).toString();//减
String e=a.multiply(b).toString();//乘
String f=a.divide(b).toString();//除
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
}
不过从还是从网上看到了一篇用string型来处理的比long型还大的整数运算,下面是具体运算类: 阅读全文…
在java编程中,对于时间的比较总是很多的,下面列出了常用的java时间比较的方法:
import java.text.*;
import java.util.*;
public class TimeCompare{
public static void main(String[] args){
boolean flag = isDateBefore(\"2004-09-09 12:12:12\",\"2005-09-09 16:00:00\");
System.out.println(flag);
flag = isDateBefore(\"2006-09-09 01:01:01\",\"2005-09-09 16:00:00\");
System.out.println(flag);
flag = isDateBefore(\"2005-09-09 01:01:01\");
System.out.println(flag);
}
//判断时间date1是否在时间date2之前
//时间格式 2005-4-21 16:16:34
public static boolean isDateBefore(String date1,String date2){
try{
DateFormat df = DateFormat.getDateTimeInstance();
return df.parse(date1).before(df.parse(date2));
}catch(ParseException e){
System.out.print(\"[SYS] \" + e.getMessage());
return false;
}
}
//判断当前时间是否在时间date2之前
//时间格式 2005-4-21 16:16:34
public static boolean isDateBefore(String date2){
try{
Date date1 = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
return date1.before(df.parse(date2));
}catch(ParseException e){
System.out.print(\"[SYS] \" + e.getMessage());
return false;
}
}
}
看到这里就知道怎么来判断比较时间格式为2005-4-21的了;下面是我仿照写的 一个静态方法,年前在工作中正好用到,呵呵!
//判断当前时间是否在时间date2之后或相等
//时间格式 2005-4-21
public static boolean isDateAfterOrEqual(String date2){
boolean flag=false;
try{
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = new Date();
if(fmt.parse(fmt.format(date1)).equals(fmt.parse(date2))||fmt.parse(fmt.format(date1)).after(fmt.parse(date2)))
flag=true;
}catch(ParseException e){
System.out.print("[SYS] " + e.getMessage());
flag = false;
}
return flag;
}
Recent Comments