JAVA 字符串格式化 例如有文本文件111.txt里的内容是200606032007050320080208现在要把它格式化成2006-06-032007-05-032008-02-08新手,请多指教,高手帮忙哦~~~~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【linuxtoproot】截止到2008-07-14 10:20:22的历史汇总数据(不包括此帖):发帖的总数量:1 发帖的总分数:0 每贴平均分数:0 回帖的总数量:0 得分贴总数量:0 回帖的得分率:0% 结贴的总数量:1 结贴的总分数:0 无满意结贴数:1 无满意结贴分:20 未结的帖子数:0 未结的总分数:0 结贴的百分比:100.00% 结分的百分比:---------------------无满意结贴率:100.00% 无满意结分率:---------------------敬礼! 这个简单,要么使用日期格式化方法。要么简单一点,直接使用字符串处理。str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6) 自己读文件,每一条做如下变换:public class Test{ public static void main(String[] args) { String str="20080208"; StringBuilder builder=new StringBuilder(str); builder.insert(4, "-"); builder.insert(7, "-"); str=builder.toString(); System.out.println(str); }} String str =20060607str = str.substring(0,4)+"-"+str.substring(5,6)+"-"+str.substring(7,8) String str =fdsaf2006060743242 Pattern p = Pattern.compile("[1-2][0-9]{3}[0-1][0-9][0-3][0-9]?", Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(ss); while (m.find()) { String s = m.group(); String y = s.substring(0, 4); String mon = s.substring(4, 6); String date = s.substring(6, 8); s = y + "-" + mon + "-" + date; } } 晕, 少了个 m.replaceFirst(s) public static String formatDateStr(String src) { SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String ret = ""; try { Calendar calendar = Calendar.getInstance(); calendar.setTime(format.parse(src.trim())); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); ret = year + "-" + (month < 10? "0" + month: month) + "-" + (day < 10? "0" + day: day); } catch(ParseException e) { e.printStackTrace(); } return ret; } public static void main(String[] args) { System.out.println(formatString("20060603")); System.out.println(formatString("20070503")); System.out.println(formatString("20080208")); } public static String formatString(String value) { return value.replaceAll("(?<=[1-9])0(?!0)", "-0"); } 如果是20080412,20081101,20081111,returnvalue.replaceAll("(?<=[1-9])0(?!0)","-0"好像就不可以吧?? 忘了考虑这种情况了,呵呵,改成下面这样就好。 public static void main(String[] args) { System.out.println(formatString("20060603")); System.out.println(formatString("20071103")); System.out.println(formatString("20081208")); System.out.println(formatString("20080108")); } public static String formatString(String value) { return value.replaceAll("(?<=[1-9])([01])(?!0)", "-$1"); } public static void main(String [] args) { String inputStr = "20090924"; DateFormat df = new SimpleDateFormat("yyyyMMdd"); DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = df.parse(inputStr); String outputString = df2.format(date); System.out.println(outputString); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static String getDateStr(String inputStr) { String outputStr = null; DateFormat df = new SimpleDateFormat("yyyyMMdd"); DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = df.parse(inputStr); outputStr = df2.format(date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return outputStr; } 关于创建jar文件 程序失去焦点以后,如何获得并显示出当前位置坐标? 哎,帮忙指点一下,c/s通信,运行时,输入路径后,就没反映了 请教高手们一个问题,困饶我这个入门的好久了。 File类中的list(FilenameFilter filter)方法的困惑? 请问如何确定字符的范围? 如何重画 Applet 如何建立自定义类的对象数组? 各位大侠,weblogic websphere tomcat 各有什么特点,那个更好呢? 在Jbuilder4中做一个含有Swing控件的Applet? if后面加不加括号的问题 求救 java解析html
楼主【linuxtoproot】截止到2008-07-14 10:20:22的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:1 结贴的总分数:0
无满意结贴数:1 无满意结贴分:20
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:---------------------
无满意结贴率:100.00% 无满意结分率:---------------------
敬礼!
public class Test{
public static void main(String[] args) {
String str="20080208";
StringBuilder builder=new StringBuilder(str);
builder.insert(4, "-");
builder.insert(7, "-");
str=builder.toString();
System.out.println(str);
}
}
str = str.substring(0,4)+"-"+str.substring(5,6)+"-"+str.substring(7,8)
String str =fdsaf2006060743242
Pattern p = Pattern.compile("[1-2][0-9]{3}[0-1][0-9][0-3][0-9]?", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(ss);
while (m.find()) {
String s = m.group();
String y = s.substring(0, 4);
String mon = s.substring(4, 6);
String date = s.substring(6, 8);
s = y + "-" + mon + "-" + date;
}
}
public static String formatDateStr(String src)
{
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String ret = "";
try
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(format.parse(src.trim()));
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
ret = year + "-" + (month < 10? "0" + month: month) + "-" + (day < 10? "0" + day: day);
}
catch(ParseException e)
{
e.printStackTrace();
}
return ret;
}
System.out.println(formatString("20060603"));
System.out.println(formatString("20070503"));
System.out.println(formatString("20080208"));
} public static String formatString(String value) {
return value.replaceAll("(?<=[1-9])0(?!0)", "-0");
}
returnvalue.replaceAll("(?<=[1-9])0(?!0)","-0"好像就不可以吧??
忘了考虑这种情况了,呵呵,改成下面这样就好。 public static void main(String[] args) {
System.out.println(formatString("20060603"));
System.out.println(formatString("20071103"));
System.out.println(formatString("20081208"));
System.out.println(formatString("20080108"));
} public static String formatString(String value) {
return value.replaceAll("(?<=[1-9])([01])(?!0)", "-$1");
}
{
String inputStr = "20090924";
DateFormat df = new SimpleDateFormat("yyyyMMdd");
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
try
{
Date date = df.parse(inputStr);
String outputString = df2.format(date);
System.out.println(outputString);
}
catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
{
String outputStr = null;
DateFormat df = new SimpleDateFormat("yyyyMMdd");
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
try
{
Date date = df.parse(inputStr);
outputStr = df2.format(date);
}
catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return outputStr;
}