开发者社区> 问答> 正文

行号补齐的问题,请教怎样做最好

比如,读取一个txt文本并显示行号, 如果有10行,则单数行要显示01、02... 如果有100行,则单数行001、002、003...双数行011、012、013... 如果有1000行... 如果有10000行...

应该怎样做?

展开
收起
长安归故里. 2020-01-07 21:31:47 931 0
1 条回答
写回答
取消 提交回答
    1. 可以先计算出文件总的行数,比如10000. 记下最大行数字的长度,在这里为5.

    2. 然后比较当前行数的数字长度与最大行数字长度,补上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();  
        }  
    }
    
    2020-01-07 21:32:01
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载