跪求大神 Java如何根据规则生成有一定格式的字符串

如:前缀+机构编号+日期+补0+后缀

字符串随意传入,输出按格式要求输出不同组合的串。

import java.util.Date;

import java.util.Scanner;


public class Test{

private static String parserDate(){

java.text.DateFormat format2 = new java.text.SimpleDateFormat("yyyyMMddhhmmss");  

        String date = format2.format(new Date());

  //      System.out.println(date);

        date =date.substring(0,8);

return date;

}

public static void main(String[] args) {

/**

* 简单说明下,,你这种需求用到的就是字符串拼接的技术

* 字符串拼接三种类,String StringBuffer,StringBuilder

* 我现在就用第二种写个小例子,你根据原理自己灵活改动

* 需求:前缀+机构编号+日期+补0+后缀

* */

StringBuffer stringBuffer=new StringBuffer();

System.out.println("请输入机构编号");

String str=new Scanner(System.in).next();//输入你要输入的字符串,我这里把你的"机构编号"当成输入的字符串

stringBuffer.append("前缀 ");

stringBuffer.append(str);

stringBuffer.append(" "+parserDate());//日期,我写成了静态方法,直接获得yyyymmdd的格式

stringBuffer.append(" 0");

stringBuffer.append(" 后缀");

System.out.println("拼接后得到的结果");

System.out.println(stringBuffer.toString());

}

}

附图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-30
String year = new SimpleDateFormat("yyyy").format(new Date);
String month = new SimpleDateFormat("MM").format(new Date);
String code =service.findlastcode(year,month);//这个需要你自己调用service方法,查询出上一个code的编码
if(code ==null){
code="机构编号"+year+month+”0001“
}else{
code = "机构编号"+year+month+String.format("%04d",Integer.valueOf(code.replaceFirst("机构编号"+year,""))+1);
}
这个可以生成机构编号+年+月+补0+具体次序的编号。不知道是不是你想要的,如果你只是一个main()方法;下面这段代码可以参考
import java.text.SimpleDateFormat;
import java.util.Date;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String year = new SimpleDateFormat("yyyy").format(new Date());
//String code = null;
String code = "QG20150003";
if (code == null) {
code = "QG"+year + "0001";
} else {
code = "QG"+year+String.format("%01d", Integer.valueOf(code.replaceFirst("QG"+year,""))+1);
}
System.out.println(code);
}
}
第2个回答  2015-01-30
public String createString(String a.....)
{
String str = "前缀"+"机构代码"+ String.valueOf(new java.util.Date().getTime() + "0"+"后缀";
return str;
}
第3个回答  2015-01-30
能具体说明一下吗?没太看懂你要的是什么
相似回答