Java中中英文对齐输出问题,以及Java中的格式化输出
一 中英文对齐输出问题
问题,要求控制台输出如下:
abcefg def
森林 阿狗
其实就是要求对齐输出,各种查找java的格式化输出,然后发现只要一个简单的“\t”就可以实现。
代码如下:
System.out.printf("abcefg\t");
System.out.printf("def\t");
System.out.println();
System.out.printf("森林之王\t");
System.out.printf("阿狗\t");
二 几个关于java格式化输出的知识点汇总
2.1 类c的printf方法
Java的格式化输出等同于String.Format,与C有很大的相似,比如 System.out.printf("%8.2f", x);
在printf中,可以使用多个参数,例如:System.out.printf("Hello, %s. Next year,
you'll be %d", name, age);
用于printf的转换符如下表:
|
转换符 |
类型 |
举例 |
|
d |
十进制整数 |
159 |
|
x |
十六进制整数 |
9f |
|
o |
八进制整数 |
237 |
|
f |
定点浮点数 |
15.9 |
|
e |
指数浮点数 |
1.59e+01 |
|
g |
通常浮点数 |
|
|
a |
十六进制浮点数 |
0x1.fccdp3 |
|
s |
字符串 |
Hello |
|
c |
字符 |
H |
|
b |
布尔型 |
TRue |
|
h |
散列码 |
42628b2 |
|
tx |
日期时间 |
见时间介绍表 |
|
% |
百分号 |
% |
|
n |
分隔符 |
在printf函数中,可以使用多个标志,如: System.out.printf("%,.2f",
10000.0 / 3.0);
用于printf的标志如下表
|
标志 |
目的 |
举例 |
|
+ |
打印数字前的符号 |
+3333.33 |
|
space |
在正数之前加空格 |
| 3333.33| |
|
0 |
在数字前补0 |
003333.33 |
|
- |
左对齐 |
|3333.33 | |
|
( |
负数括在括号内 |
(3333.33) |
|
, |
添加分组分隔符 |
3,333.33 |
|
# (for f ) |
包含小数点 |
3,333. |
|
# (for x or o) |
添加前缀 0x 或 0 |
0xcafe |
|
^ |
转化为大写 |
0XCAFE |
|
$ |
指定格式化参数索引,如%1$d,%1$d表示以十进制 |
159 9F |
|
< |
格式化前面参数,如%d%<x表示以十进制和十六进 |
159 9F |
时间日期的转换符如下:
|
转换符 |
类型 |
举例 |
|
C |
完整日期和时间 |
Mon Feb 09 18:05:19 PST 2004 |
|
F |
ISO 8601 日期 |
2004-02-09 |
|
D |
美国时间格式 (mm/dd/year) |
02/09/2004 |
|
T |
24小时时间 |
18:05:19 |
|
r |
12小时时间 |
06:05:19 pm |
|
R |
24小时无秒时间 |
18:05 |
|
Y |
四位年 |
2004 |
|
y |
年的后两位 |
04 |
|
C |
年的前两位 |
20 |
|
B |
月的完整拼写 |
February |
|
b or h |
月的缩写 |
Feb |
|
m |
两位月(前补0) |
02 |
|
d |
两位日(前补0) |
09 |
|
e |
日期(前不补0) |
9 |
|
A |
完整星期几 |
Monday |
|
a |
星期几的缩写 |
Mon |
|
j |
这一年的第多少天,三位补0 |
069 |
|
H |
24小时制小时,两位补0 |
18 |
|
k |
24小时制小时,两位不补0 |
18 |
|
I |
12小时制小时,两位补0 |
06 |
|
l |
12小时制小时,两位不补0 |
6 |
|
M |
分钟,两位补0 |
05 |
|
S |
秒,两位补0 |
19 |
|
L |
毫秒,三位补0 |
047 |
|
N |
毫微秒,九位补0 |
047000000 |
|
P |
上下午大写 |
PM |
|
p |
上下午小写 |
pm |
|
z |
RFC 822 numeric offset from GMT |
-0800 |
|
Z |
时区 |
PST |
|
s |
1970-01-01 00:00:00起秒数 |
1078884319 |
|
E |
1970-01-01 00:00:00起毫秒数 |
1078884319047 |
2.2 String.format
public class StringFormat {
/**
* 格式化输出 字符串
* [*]左对齐,右补空格
*
* @param str
* @param min_length : 最小输出长度
* @return
*/
public static String formatLeftS(String str, int min_length) {
String format = "%-" + (min_length < 1 ? 1 : min_length) + "s";
return String.format(format, str);
}
/**
* 格式化输出 整数
* [*]右对齐,左补0
*
* @param num
* @param min_length : 最小输出长度
* @return
*/
public static String format0Right(long num, int min_length) {
String format = "%0" + (min_length < 1 ? 1 : min_length) + "d";
return String.format(format, num);
}
/**
* 格式化输出 浮点数
* [*]右对齐,左补0
*
* @param d
* @param min_length : 最小输出长度
* @param precision : 小数点后保留位数
* @return
*/
public static String format0Right(double d, int min_length, int precision) {
String format = "%0" + (min_length < 1 ? 1 : min_length) + "."
+ (precision < 0 ? 0 : precision) + "f";
return String.format(format, d);
}
}
2.3 其它……
Java中中英文对齐输出问题,以及Java中的格式化输出的更多相关文章
- jstl中的sql:query标签获取的结果如何格式化输出
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- python中in,not in,比较运算符,格式化输出,编码
一,python中的in,和not in python中in的作用是检测或查找,例如: c = ‘你好大号胡覅但是啊飞碟说’ b = ‘你好’ print(b in c ) 结果: True c = ...
- 编写Java程序,使用日期处理类实现日期的格式化输出
返回本章节 返回作业目录 需求说明: 按"yyyy-MM-dd"格式输入一个字符串型日期,然后输出这个日期为本年中的第几周. 实现思路: 使用SimpleDateFormat格式化 ...
- MFC中利用CString和Format成员函数将数字格式化输出
str.Format("格式控制字符串”,输出列表): 格式控制字符串包括格式字符串和非格式字符串,用双引号括起来.其中非格式字符串原样输出. 格式字符串是以%开头的字符串:%[标识][输出 ...
- 2017-12-15python全栈9期第二天第五节之格式化输出补充之想要在格式化输出中表示单纯的%号就加%
#!/user/bin/python# -*- coding:utf-8 -*-name = input('姓名:')age = input('年龄:')height = input('身高:')ms ...
- Java基础 -- 字符串(格式化输出、正则表达式)
一 字符串 1.不可变String String对象是不可变的,查看JDK文档你就会发现,String类中每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以包含修改后 ...
- Java:输入输出、格式化输出
1.输出 都在System.out模块下,常用方法有: print:输出: println:输出并换行: printf:格式化输出: 2.格式化输出 格式化输出的方法是System.out.print ...
- Java - 格式化输出JSON字符串的两种方式
目录 1 使用阿里的fastjson 1.1 项目的pom.xml依赖 1.2 Java示例代码 2 使用谷歌的gson 2.1 项目的pom.xml依赖 2.2 Java示例代码 1 使用阿里的fa ...
- Java基础学习总结(47)——JAVA输入输出流再回忆
一.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列. Java的I/O流提供了 ...
随机推荐
- python2.7练习小例子(二十)
20):题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上 ...
- 2016年JD工作遇到的问题:1-5,搭建环境和熟悉项目过程中的坑
1.更新不需要权限的项目A,却提示没有权限. 先从Git上更新项目A的代码,提示没有权限. 然后从Git上更新其它项目B的代码,正常. 再更新项目A的代码,正常了. 奇葩问题! 2.Eclipse中, ...
- C#导出数据到CSV和EXCEL文件时数字文本被转义的解决方法
今天写C#导出datagrid数据到csv格式文件的时候,发现不管怎么尝试,凡是单元格里面全是数字的单元格,在用Excel打开的时候,都被自动转义成数据格式.数据查看极其不方便.最后google了一下 ...
- volatility的使用
volatility取证的使用----windows内存 简介 kali下默认安装 可以对windows,linux,mac,android的内存进行分析 内存文件的准备 Win2003SP2x86下 ...
- 自动化测试--封装JDBCUnit
在进行测试的时候,经常需要对数据库进行操作.我们知道,通过代码与数据库交互,需要以下几步: 1.加载驱动 之前有盆友问我,为什么Selenium操作浏览器的时候,非要下载浏览器驱动?为啥对数据库进行操 ...
- weblogic中配置自定义filter和servlet
情景:最近公司产品要接入其它厂商的单点服务器,本来我是在Tomcat上进行测试,使用的是spring boot 的注解方式@webFilter和@webServlet注解写过滤器和servlet类,启 ...
- ssh以bash登录的配置
因ssh登录时不会加载.bashrc而是加载.bash_profile,所以以ssh的默认登录不会是bash,只要在.bash_profile中添加以下代码即可: if [ -f ~/.bashrc ...
- spring boot 线程池配置
1.配置类 package cn.com.bonc.util; import java.util.concurrent.Executor; import java.util.concurrent.Th ...
- Visual Studio Code 配置Go 开发环境最简单的方法!!!
由于大家都知道的原因,在国内如果想访问go等各种资源,都会遇到某种不可预知的神奇问题.导致在VS Code中安装 go 各种插件都会失败. 于是乎,网上就出现了各种各样的解决方案:什么手动git cl ...
- C语言关于“输入包含多行数据,请处理到文件结束”的问题
今天,笔者在做本校ACM校赛网络赛的时候,遇到输入格式中有这样的要求:输入包含多行数据,请处理到文件结束.题目的逻辑很简单,主要功能代码很容易实现,但是题目中没有“明确”指出控制台中输入数据以什么方式 ...