有没有快捷的方式对字符串进行格式化????? 看看java.text.DateFormat类吧,里面有你想要的东西。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看了,像是也不好用。不如C里面sprintf来的方便。 DateFormat 不好用???是你不会用吧???!!! 楼上的有道理,但最好还是使用 java.text.SimpleDateFormat 它继承自 java.text.DateFormat . 当然了,DateFormat仅仅是个接口, 在JAVA中什么函数类似于VC中CString类的Format函数。如str.Format("货车=%d,客车=%d 来自%s车站",x,y,str2);这样的写法可以说是相当方便了,在JAVA中也有相应的替代品吧。 自己写一下,用java.text.DateFormat类DateFormat date=new SimpleDateFormat("yyyy-MM-dd"); 我说的是这个,与时间格式化没关系。是字符串格式化。在JAVA中什么函数类似于VC中CString类的Format函数。如str.Format("货车=%d,客车=%d 来自%s车站",x,y,str2);这样的写法可以说是相当方便了,在JAVA中也有相应的替代品吧。 DateFormat是接口?汗 -_-b http://www.horstmann.com/corejava.html 中的Sample Code中有具体是printf实现。可以去看看 java.text.SimpleDateFormat就可以了,怎么不能用那!:Calendar calender =Calendar.getInstance();SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");format.setLenient(false);String strResponseDate = format.format(calender.getTime()); /** * @author jceater * * 更改所生成类型注释的模板为 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释 */import java.text.*;public class StringAlign extends Format { /**用于左对齐*/ public static final int JUST_LEFT = 'l'; /**用于居中对齐*/ public static final int JUST_CENTRE = 'c'; /**用于右对齐*/ public static final int JUST_RIGHT = 'r'; /**当前对齐位置*/ private int just; /**当前最大行宽*/ private int maxChars; public StringAlign(int maxChars, int just) { switch (just) { case JUST_LEFT : case JUST_CENTRE : case JUST_RIGHT : this.just = just; break; default : throw new IllegalArgumentException("非法的位置参数"); } if (maxChars < 0) { throw new IllegalArgumentException("非法的行宽参数"); } this.maxChars = maxChars; } public StringBuffer format( Object obj, StringBuffer where, FieldPosition ignore) { String s = (String) obj; String wanted = s.substring(0, Math.min(s.length(), maxChars)); /**如果没有空间用于对齐返回最大行宽的内容*/ if (wanted.length() > maxChars) { where.append(wanted); } else switch (just) { case JUST_LEFT : where.append(wanted); pad(where, maxChars - wanted.length()); break; case JUST_CENTRE : int startPos = where.length(); pad(where, (maxChars - wanted.length()) / 2); where.append(wanted); pad(where, (maxChars - wanted.length()) / 2); /**调整取整误差*/ pad(where, maxChars - (where.length() - startPos)); break; case JUST_RIGHT : pad(where, maxChars - wanted.length()); where.append(wanted); break; } return where; } /**添加空格*/ public final void pad(StringBuffer to, int howMany) { for (int i = 0; i < howMany; i++) to.append(" "); } public String format(String s){ return format(s,new StringBuffer(),null).toString(); } public Object parseObject(String source,ParsePosition pos){ return source; } public static void main(String[] args){ StringAlign formatter1=new StringAlign(100,StringAlign.JUST_LEFT); System.out.println(formatter1.format("- i -")); StringAlign formatter2=new StringAlign(100,StringAlign.JUST_CENTRE); System.out.println(formatter2.format("- i -")); StringAlign formatter3=new StringAlign(100,StringAlign.JUST_RIGHT); System.out.println(formatter3.format("- i -")); }} 一个字符串格式化用的了这么长吗?????有没有类似sprintf这像简洁的操作。 没有类似sprintf这样的函数在java中至少我没看到过,呵呵!!!你可以把它当做公用函数来使用 SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); 好像Java对字符串的操作比较麻烦printf的格式符%d %s %f等等都没有吧? printf函数可以自己模拟!!! 关于接口的实现和内部类的问题 java多线程问题 为什么我在JBuild9无法随意控制控件的大小? 如何将外部配置文件读入HashMap,请指教,谢谢! 从命令提示符里接受一个整数 怎样江对象数组转换成字符串数组? jcreator的编译问题 在线等待,请高手回答 请问各位高手,为什么出现这种错误. 如何使用JAVAMAIL转发邮件? jsp乱码问题,解决就结贴给分,谢谢! 在JTable中无法得到当前所选的行列,getSelectedColumn和getSelectedRow全返回-1,为什么??
是你不会用吧???!!!
str.Format("货车=%d,客车=%d 来自%s车站",x,y,str2);
这样的写法可以说是相当方便了,在JAVA中也有相应的替代品吧。
DateFormat date=new SimpleDateFormat("yyyy-MM-dd");
str.Format("货车=%d,客车=%d 来自%s车站",x,y,str2);
这样的写法可以说是相当方便了,在JAVA中也有相应的替代品吧。
汗 -_-b
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
format.setLenient(false);
String strResponseDate = format.format(calender.getTime());
* @author jceater
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/import java.text.*;public class StringAlign extends Format { /**用于左对齐*/
public static final int JUST_LEFT = 'l';
/**用于居中对齐*/
public static final int JUST_CENTRE = 'c';
/**用于右对齐*/
public static final int JUST_RIGHT = 'r'; /**当前对齐位置*/
private int just;
/**当前最大行宽*/
private int maxChars; public StringAlign(int maxChars, int just) {
switch (just) {
case JUST_LEFT :
case JUST_CENTRE :
case JUST_RIGHT :
this.just = just;
break;
default :
throw new IllegalArgumentException("非法的位置参数");
}
if (maxChars < 0) {
throw new IllegalArgumentException("非法的行宽参数");
}
this.maxChars = maxChars;
} public StringBuffer format(
Object obj,
StringBuffer where,
FieldPosition ignore) {
String s = (String) obj;
String wanted = s.substring(0, Math.min(s.length(), maxChars)); /**如果没有空间用于对齐返回最大行宽的内容*/
if (wanted.length() > maxChars) {
where.append(wanted);
} else
switch (just) {
case JUST_LEFT :
where.append(wanted);
pad(where, maxChars - wanted.length());
break;
case JUST_CENTRE :
int startPos = where.length();
pad(where, (maxChars - wanted.length()) / 2);
where.append(wanted);
pad(where, (maxChars - wanted.length()) / 2);
/**调整取整误差*/
pad(where, maxChars - (where.length() - startPos));
break;
case JUST_RIGHT :
pad(where, maxChars - wanted.length());
where.append(wanted);
break;
}
return where;
} /**添加空格*/
public final void pad(StringBuffer to, int howMany) {
for (int i = 0; i < howMany; i++)
to.append(" ");
}
public String format(String s){
return format(s,new StringBuffer(),null).toString();
}
public Object parseObject(String source,ParsePosition pos){
return source;
}
public static void main(String[] args){
StringAlign formatter1=new StringAlign(100,StringAlign.JUST_LEFT);
System.out.println(formatter1.format("- i -"));
StringAlign formatter2=new StringAlign(100,StringAlign.JUST_CENTRE);
System.out.println(formatter2.format("- i -"));
StringAlign formatter3=new StringAlign(100,StringAlign.JUST_RIGHT);
System.out.println(formatter3.format("- i -"));
}}
有没有类似sprintf这像简洁的操作。
至少我没看到过,呵呵!!!
你可以把它当做公用函数来使用
printf的格式符%d %s %f等等都没有吧?
可以自己模拟!!!