JAVA按格式输出字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA按格式输出字符串相关的知识,希望对你有一定的参考价值。

假如我希望一次性输出这样的格式
Math 128
English 127
要一次性用JOptionMessageDialog(null, msg);输出
String msg要怎么写?
我试了

String msg = String.format(“%-15s%-10s%n%-15s%-10s%n", "Math", mathScore, "Englsih", englishScore);

但是不行, 死活不能对齐。
格式上左对齐右对齐无所谓, 空几个格也无所谓, 只要能对齐那个数字就好了, 就两列, 可能会有更多行。
等一下,不能右对齐...
那个是
JOptionPane.showMessageDialog(null, msg);
手急打快了

在Java编程中格式化字符串,用String类的静态方法String.format():

format(Locale l, String format, Object... args) 
//使用指定的语言环境、格式字符串和参数返回一个格式化字符串。
format(String format, Object... args) 
//使用指定的格式字符串和参数返回一个格式化字符串。

举几个这个方法实用的例子(注释是输出结果):

//案例1
long now = System.currentTimeMillis();
String s = String.format("%tR",now);   //输出当前时间的小时和分钟
// 格式化输出结果"09:22"

//案例2
Date d = new Date(now);
s = String.format("%tD",d);   //输出当前时间的month/day/year      
// 格式化输出结果"11/05/15"
参考技术A 你这种要求要用html格式来显示才行 ,swing组件支持用制表符等特殊符号的组件不多,比如JTextArea、JtextPane等;如果要在面板上直接显示,需要用html来显示; 参考技术B 你可以使用\t这个字符,\t表示一个TAB字符,你可以在字符串后面用一个或者两个来控制。 参考技术C 我刚试了一下你的代码,在控制台打印出来是对齐的,很明显是OptionPane使用的默认字体在显示时的宽度不一致的问题,所以换个显示字体就可以了,代码:
int mathScore=128;
int englishScore=127;

String msg = String.format("%-15s%s%n%-15s%s", "Math", mathScore,
"English", englishScore);
System.out.println(msg);
JTextArea jTextArea=new JTextArea();

//method1:
jTextArea.setFont(new Font("宋体", Font.PLAIN, 20));//换个字体才能保证宽度
jTextArea.setBackground(new JOptionPane().getBackground());//颜色有差异
jTextArea.setText(msg);
JOptionPane.showMessageDialog(null, jTextArea);

//method2:
JOptionPane jiptionPane = new JOptionPane();
jiptionPane.setFont(new Font("宋体", Font.PLAIN, 20));//字体为宋体
JOptionPane.showMessageDialog(null, "Math \n English");本回答被提问者采纳

设计一个java接口,接收json,并且将处理结果按json的格式返回

web环境下,servlet下该怎么实现这个功能呢?怎么接收?怎么返回?

json说白了就是个字符串呗。
原来用servlet怎么接受字符串参数,就怎么接受json。
只不过这个json串一定要解析才能拿到想要的数据。
处理完后再生成一个json串用writer也好,跳转页面也好,总之把json输出就算返回了。
处理json你可以不必自己写代码,从网上找个json的工具包就可以,推荐jackson
参考技术A JSONObject jsonObject = new JSONObject();
Map map = request.getParameterMap();
Iterator<?> it = map.keySet().iterator();
while(it.hasNext())
String key = (String)it.next();
String[] values = (String[])map.get(key);
jsonObject.accumulate(key, values[0]);


String name = jsonObject.getString("userName"); //返回从前台接受的用户名
System.out.println(name); //输出用户名

jsonObject.clear(); // 清空jsonObjec中的数据
jsonObject.put("love" , "足球"); //将足球赋给love这个变量名
out.print(jsonObject); //返回json格式的数据本回答被提问者和网友采纳
参考技术B 网页可以发送一个普通的请求,附带一个json字符串的参数。
服务器端就是接受一个普通的请求并取得参数,json是一串普通的字符串,所以怎么处理随便你,你可以自己写个类来解析json。或者使用别人写好的jar包。
参考技术C

    下载一个fastjson-1.1.24的jar包,个人推荐这个,不过网上有很多都是用来组织和解析json的。

    json是按照字符串的形式传递来的,在servlet中获取这个参数,使用fastjson提供的方法解析,做相应的处理,得到返回字符串(json);

    以参数的方式返回页面信息,

以上是关于JAVA按格式输出字符串的主要内容,如果未能解决你的问题,请参考以下文章

什么是“格式化字符串”?

如何将JSON字符串格式化输出

ACM_输出格式(水题)

java中如何按一定的格式输出时间, 必须给出例子

java编程把任意输入的浮点数按小数点后2位输出格式输出

mysql datetime类型 按格式在页面输出