比如,读取一个txt文本并显示行号,
如果有10行,则单数行要显示01、02...
如果有100行,则单数行001、002、003...双数行011、012、013...
如果有1000行...
如果有10000行...
应该怎样做?
比如,读取一个txt文本并显示行号,
如果有10行,则单数行要显示01、02...
如果有100行,则单数行001、002、003...双数行011、012、013...
如果有1000行...
如果有10000行...
应该怎样做?
可以先计算出文件总的行数,比如10000. 记下最大行数字的长度,在这里为5.
然后比较当前行数的数字长度与最大行数字长度,补上N个0,N等于长度差。
可以写一个补0的方法,下面就是一个例子:
[code="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();
}
}[/code]