比如,读取一个txt文本并显示行号, 如果有10行,则单数行要显示01、02... 如果有100行,则单数行001、002、003...双数行011、012、013... 如果有1000行... 如果有10000行...
应该怎样做?
可以先计算出文件总的行数,比如10000. 记下最大行数字的长度,在这里为5.
然后比较当前行数的数字长度与最大行数字长度,补上N个0,N等于长度差。
可以写一个补0的方法,下面就是一个例子:
Java代码 收藏代码
public class RowNumTest {
public static void main(String[] args) {
/**
* 假设文件有100行,那么记为最大行数字的长度为3.
* 下面是一个输出前10行,对齐的行编号。
* 001
* 002
* 003
* ...
* 09
* 010
*/
for(int i=1;i<11;i++)
{
System.out.println(appendLeadingZeros(i,3));
}
}
/**
*
* @param currentRowNumber 当前行
* @param maxLength 最大行数字的长度
* @return 返回一个与最大行数对齐的行编号。当前行数数字长度小于最大行数字长度的,
* 则在前面补上0
*/
public static String appendLeadingZeros(int currentRowNumber, int maxLength)
{
StringBuilder sb = new StringBuilder();
String value = String.valueOf(currentRowNumber);
int lengthDiff = maxLength - value.length();
for(int i =0 ;i <lengthDiff;i++ )
{
sb.append(0);
}
return sb.append(currentRowNumber).toString();
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。