astro 2013-09-17 21:39 采纳率: 100%
浏览 211
已采纳

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

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

应该怎样做?

  • 写回答

1条回答 默认 最新

  • 孟君 2013-09-18 00:20
    关注
    1. 可以先计算出文件总的行数,比如10000. 记下最大行数字的长度,在这里为5.

    2. 然后比较当前行数的数字长度与最大行数字长度,补上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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!